From 784a9bd5bbad2075fa36ba3ee1f2e68eb0290c2c Mon Sep 17 00:00:00 2001 From: xfarrow <49845537+xfarrow@users.noreply.github.com> Date: Tue, 10 Jun 2025 12:52:19 +0200 Subject: [PATCH] GetExperience, RemoveExperience --- .../Experience/DeleteExperience.bru | 11 +++++++++++ .../apis/nodejs/src/models/experience_model.js | 9 +++++---- .../apis/nodejs/src/routes/experience_routes.js | 15 ++++++++++++++- 3 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 backend/apis/BlinkApiCollection/Experience/DeleteExperience.bru diff --git a/backend/apis/BlinkApiCollection/Experience/DeleteExperience.bru b/backend/apis/BlinkApiCollection/Experience/DeleteExperience.bru new file mode 100644 index 0000000..ea60b3f --- /dev/null +++ b/backend/apis/BlinkApiCollection/Experience/DeleteExperience.bru @@ -0,0 +1,11 @@ +meta { + name: DeleteExperience + type: http + seq: 3 +} + +delete { + url: http://localhost:3000/api/experiences/2 + body: none + auth: inherit +} diff --git a/backend/apis/nodejs/src/models/experience_model.js b/backend/apis/nodejs/src/models/experience_model.js index ef229c0..a617672 100644 --- a/backend/apis/nodejs/src/models/experience_model.js +++ b/backend/apis/nodejs/src/models/experience_model.js @@ -33,16 +33,17 @@ async function insert(experience) { return insertedExperience[0]; } -async function findById(experienceId) { +async function find(experienceId) { return await knex('Experience').where({ id: experienceId }).select().first(); } -async function remove(experienceId) { +async function remove(experienceId, personId) { await knex('Experience') .where({ - id: experienceId + id: experienceId, + person_id: personId }) .del(); } @@ -59,7 +60,7 @@ async function update(experience) { module.exports = { createExperience, insert, - findById, + find, remove, update }; \ No newline at end of file diff --git a/backend/apis/nodejs/src/routes/experience_routes.js b/backend/apis/nodejs/src/routes/experience_routes.js index 2d55321..ebe5b4f 100644 --- a/backend/apis/nodejs/src/routes/experience_routes.js +++ b/backend/apis/nodejs/src/routes/experience_routes.js @@ -42,7 +42,7 @@ async function find(req, res) { if (experience == null) { return res.status(404).send(); } - return res.status(200).json(jobApplication); + return res.status(200).json(experience); } catch (error) { console.error(`Error in function ${find.name}: ${error}`); res.status(500).json({ @@ -51,9 +51,22 @@ async function find(req, res) { } } +async function remove(req, res) { + try { + await Experience.remove(req.params.experienceId, req.jwt.person_id); + return res.status(204).send(); + } catch (error) { + console.error(`Error in function ${remove.name}: ${error}`); + res.status(500).json({ + error: 'Internal server error' + }); + } +} + const routes = express.Router(); routes.post('/', jwtUtils.extractToken, insert); routes.get('/:experienceId', jwtUtils.extractToken, find); +routes.delete('/:experienceId', jwtUtils.extractToken, remove); module.exports = { routes