From 797a69fe34e7a94813f4517d10560ae84f8aa23d Mon Sep 17 00:00:00 2001 From: xfarrow Date: Mon, 4 Mar 2024 15:50:14 +0100 Subject: [PATCH] activation link function update --- backend/apis/nodejs/src/app.js | 2 +- backend/apis/nodejs/src/models/person_model.js | 13 ++++++++++--- backend/apis/nodejs/src/routes/person_routes.js | 8 ++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/backend/apis/nodejs/src/app.js b/backend/apis/nodejs/src/app.js index ac56c25..b439a0c 100644 --- a/backend/apis/nodejs/src/app.js +++ b/backend/apis/nodejs/src/app.js @@ -56,7 +56,7 @@ publicRoutes.post('/register', personRoutes.registerPerson); publicRoutes.post('/login', personRoutes.login); publicRoutes.get('/person/:id/details', personRoutes.getPerson); publicRoutes.get('/organization/:id', organizationRoutes.getOrganization); -publicRoutes.get('/person/activation', personRoutes.enablePersonByActivationLink); +publicRoutes.get('/person/activation', personRoutes.confirmActivation); const protectedRoutes = express.Router(); protectedRoutes.use(jwtUtils.verifyToken); diff --git a/backend/apis/nodejs/src/models/person_model.js b/backend/apis/nodejs/src/models/person_model.js index 1d71712..c7b04cb 100644 --- a/backend/apis/nodejs/src/models/person_model.js +++ b/backend/apis/nodejs/src/models/person_model.js @@ -128,10 +128,17 @@ async function deletePerson (personId) { .del(); } -async function enablePerson (personId) { - await knex('Person') +async function confirmActivation (personId) { + await knex.transaction(async (tr) => { + await knex('Person') .where('id', personId) .update({enabled: true}); + + await tr('ActivationLink') + .where('person_id', personId) + .del(); + }); + } // Exporting a function @@ -145,5 +152,5 @@ module.exports = { registerPerson, updatePerson, deletePerson, - enablePerson + confirmActivation }; diff --git a/backend/apis/nodejs/src/routes/person_routes.js b/backend/apis/nodejs/src/routes/person_routes.js index fa4941f..7705fe8 100644 --- a/backend/apis/nodejs/src/routes/person_routes.js +++ b/backend/apis/nodejs/src/routes/person_routes.js @@ -243,16 +243,16 @@ async function deletePerson (req, res) { * * Required field(s): identifier */ -async function enablePersonByActivationLink(req, res){ +async function confirmActivation(req, res){ try { const personId = await activationModel.getPersonIdByIdentifier(req.query.q); if(!personId){ return res.status(401).json({error: 'Activation Link either not valid or expired'}); } - await personModel.enablePerson(personId); + await personModel.confirmActivation(personId); return res.status(200).json({ success: true }); } catch (error) { - console.error(`Error in function ${enablePersonByActivationLink.name}: ${error}`); + console.error(`Error in function ${confirmActivation.name}: ${error}`); return res.status(500).json({ error: 'Internal server error' }); } } @@ -267,5 +267,5 @@ module.exports = { getMyself, updatePerson, deletePerson, - enablePersonByActivationLink + confirmActivation };