From bb1fbfa1f29a61cd96fc972029db4f7b4128c204 Mon Sep 17 00:00:00 2001 From: xfarrow Date: Thu, 19 Oct 2023 14:58:06 +0200 Subject: [PATCH] update person --- backend/apis/nodejs/api.js | 2 +- backend/apis/nodejs/api_controller.js | 32 +++++++++++++++++++++------ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/backend/apis/nodejs/api.js b/backend/apis/nodejs/api.js index fa62a08..336a0c7 100644 --- a/backend/apis/nodejs/api.js +++ b/backend/apis/nodejs/api.js @@ -23,6 +23,7 @@ app.use(cors()); app.post('/blinkapi/register', api_controller.registerPerson); // Register a Person app.post('/blinkapi/login', api_controller.login); // Login app.get('/blinkapi/person/:id', api_controller.verifyToken, api_controller.getPerson); // Obtain Person's details +app.put('/blinkapi/person/:id', api_controller.verifyToken, api_controller.updatePerson); // Update Person's details app.delete('/blinkapi/person/delete', api_controller.verifyToken, api_controller.deletePerson); // Delete a Person app.post('/blinkapi/organization', api_controller.verifyToken, api_controller.createOrganization); // Create organization app.get('/blinkapi/organization/:id', api_controller.verifyToken, api_controller.getOrganization); // Get Organization data @@ -30,7 +31,6 @@ app.delete('/blinkapi/organization/:id', api_controller.verifyToken, api_control app.post('/blinkapi/organization/post', api_controller.verifyToken, api_controller.createOrganizationPost); // Create a organization's post app.delete('/blinkapi/organization/post/:id', api_controller.verifyToken, api_controller.deleteOrganizationPost); // Delete a organization's post app.post('/blinkapi/organization/admin', api_controller.verifyToken, api_controller.addOrganizationAdmin); // Add Organization Administrator -app.delete('/blinkapi/organization/admin/:id', api_controller.verifyToken, api_controller.removeOrganizationAdmin); // Remove Organization Administrator // Start the server app.listen(process.env.API_SERVER_PORT, () => { diff --git a/backend/apis/nodejs/api_controller.js b/backend/apis/nodejs/api_controller.js index 1dd3b20..46f99e9 100644 --- a/backend/apis/nodejs/api_controller.js +++ b/backend/apis/nodejs/api_controller.js @@ -122,6 +122,29 @@ async function getPerson(req, res){ } } +// PUT +async function updatePerson(req, res){ + if (req.jwt.person_id != req.params.id){ + return res.status(403).json({ error : "Forbidden"}); + } + + try { + await knex('Person') + .where('id', req.params.id) + .update({ + display_name: req.body.display_name, + date_of_birth: req.body.date_of_birth, + available: req.body.available, + place_of_living: req.body.place_of_living + }); + return res.status(200).json({ success : "true"}); + } + catch (error) { + console.log("Error while updating a Person: " + error); + return res.status(500).json({ error : "Internal server error"}); + } +} + // GET async function deletePerson(req, res) { // A user can only delete themselves @@ -336,11 +359,6 @@ async function addOrganizationAdmin(req, res){ } } -// DELETE -async function removeOrganizationAdmin(req, res){ - -} - // ======== END API ENDPOINTS ======== async function checkUserCredentials(email, password){ @@ -407,6 +425,7 @@ module.exports = { registerPerson, login, getPerson, + updatePerson, deletePerson, verifyToken, createOrganization, @@ -414,6 +433,5 @@ module.exports = { deleteOrganization, createOrganizationPost, deleteOrganizationPost, - addOrganizationAdmin, - removeOrganizationAdmin + addOrganizationAdmin }; \ No newline at end of file