Create experience endpoint (beta)

This commit is contained in:
Alessandro Ferro
2025-04-18 11:40:52 +02:00
parent 92e4997ccb
commit 597a9c1dae
36 changed files with 603 additions and 7 deletions

View File

@ -28,7 +28,7 @@ const serverRoutes = require('./routes/server_routes.js');
const resetPasswordRoutes = require('./routes/reset_password_routes.js');
const applicationRoutes = require('./routes/job_application_routes.js');
const personContactInfosRoutes = require('./routes/person_contact_info_routes.js');
const experienceRoutes = require('./routes/experience_routes.js');
/*
===== END IMPORTING MODULES =====
*/
@ -59,7 +59,7 @@ app.use('/api/organizations', organizationAdminRoutes.routes);
app.use('/api/resetpassword', resetPasswordRoutes.routes);
app.use('/api/organizations', applicationRoutes.routes);
app.use('/api/people', personContactInfosRoutes.routes);
app.use('/api/experiences', experienceRoutes.routes);
/*
===== END ROUTE HANDLING =====
*/

View File

@ -9,4 +9,34 @@
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
*/
*/
const knex = require('../utils/knex_config');
function createExperience(title, description, organizationId, organizationName, date, person_id, type) {
const experience = {
title,
description,
organization_id: organizationId,
organization_name: organizationName,
date,
person_id,
type
};
return experience;
}
async function insert(experience){
const insertedExperience = await knex('Experience')
.insert(experience)
.returning('*');
return insertedExperience[0];
}
// Exporting a function
// means making a JavaScript function defined in one
// module available for use in another module.
module.exports = {
createExperience,
insert
};

View File

@ -9,4 +9,36 @@
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
*/
*/
const Experience = require('../models/experience_model');
const express = require('express');
const jwtUtils = require('../utils/jwt_utils');
async function addExperience(req, res) {
try {
const experienceToInsert = Experience.createExperience(
req.body.title,
req.body.description,
req.body.organizationId,
req.body.organizationName,
req.body.date,
req.jwt.person_id,
req.body.type
)
const insertedExperience = await Experience.insert(experienceToInsert);
return res.status(201).json(insertedExperience);
} catch (error) {
console.error(`Error in function ${addExperience.name}: ${error}`);
return res.status(500).json({
error: 'Internal server error'
});
}
}
const routes = express.Router();
routes.post('/', jwtUtils.extractToken, addExperience);
module.exports = {
routes
};