From 3ea41c82d4e5019a4aed938a0793091c375405db Mon Sep 17 00:00:00 2001 From: xfarrow Date: Mon, 4 Mar 2024 16:37:22 +0100 Subject: [PATCH] Some refactoring --- backend/apis/nodejs/src/app.js | 30 ++++--------------- .../src/routes/organization_admin_routes.js | 10 +++++-- .../src/routes/organization_post_routes.js | 10 +++++-- .../nodejs/src/routes/organization_routes.js | 19 ++++++++---- .../apis/nodejs/src/routes/person_routes.js | 23 +++++++++----- 5 files changed, 52 insertions(+), 40 deletions(-) diff --git a/backend/apis/nodejs/src/app.js b/backend/apis/nodejs/src/app.js index b439a0c..1c376ba 100644 --- a/backend/apis/nodejs/src/app.js +++ b/backend/apis/nodejs/src/app.js @@ -15,7 +15,6 @@ ===== BEGIN IMPORTING MODULES */ -// TODO: clean up require('dotenv').config(); const express = require('express'); const cors = require('cors'); @@ -24,7 +23,6 @@ const personRoutes = require('./routes/person_routes.js'); const organizationRoutes = require('./routes/organization_routes.js'); const organizationAdminRoutes = require('./routes/organization_admin_routes.js'); const organizationPostRoutes = require('./routes/organization_post_routes.js'); -const jwtUtils = require('./utils/middleware_utils.js'); /* ===== END IMPORTING MODULES @@ -51,28 +49,12 @@ app.use(rateLimit({ ===== BEGIN ROUTE HANDLING ===== */ -const publicRoutes = express.Router(); -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.confirmActivation); - -const protectedRoutes = express.Router(); -protectedRoutes.use(jwtUtils.verifyToken); -protectedRoutes.get('/person/myself', personRoutes.getMyself); -protectedRoutes.put('/person/', personRoutes.updatePerson); -protectedRoutes.delete('/person/delete', personRoutes.deletePerson); -protectedRoutes.post('/organization/admin', organizationAdminRoutes.addOrganizationAdmin); -protectedRoutes.delete('/organization/removeadmin', organizationAdminRoutes.removeOrganizationAdmin); -protectedRoutes.post('/organization', organizationRoutes.createOrganization); -protectedRoutes.put('/organization/:id', organizationRoutes.updateOrganization); -protectedRoutes.delete('/organization/:id', organizationRoutes.deleteOrganization); -protectedRoutes.post('/organization/post', organizationPostRoutes.createOrganizationPost); -protectedRoutes.delete('/organization/post/:id', organizationPostRoutes.deleteOrganizationPost); - -app.use('/api', publicRoutes); // Routes not requiring token -app.use('/api', protectedRoutes); // Routes requiring token +app.use('/api', personRoutes.publicRoutes); +app.use('/api', organizationRoutes.publicRoutes); +app.use('/api', personRoutes.protectedRoutes); +app.use('/api', organizationRoutes.protectedRoutes); +app.use('/api', organizationAdminRoutes.protectedRoutes); +app.use('/api', organizationPostRoutes.protectedRoutes); /* ===== END ROUTE HANDLING ===== diff --git a/backend/apis/nodejs/src/routes/organization_admin_routes.js b/backend/apis/nodejs/src/routes/organization_admin_routes.js index cba6741..2c4d1c0 100644 --- a/backend/apis/nodejs/src/routes/organization_admin_routes.js +++ b/backend/apis/nodejs/src/routes/organization_admin_routes.js @@ -12,6 +12,8 @@ */ const organizationAdminModel = require('../models/organization_admin_model'); +const express = require('express'); +const jwtUtils = require('../utils/middleware_utils'); /** * POST Method @@ -63,7 +65,11 @@ async function removeOrganizationAdmin (req, res) { } } +const protectedRoutes = express.Router(); +protectedRoutes.use(jwtUtils.verifyToken); +protectedRoutes.post('/organization/admin', addOrganizationAdmin); +protectedRoutes.delete('/organization/admin', removeOrganizationAdmin); + module.exports = { - addOrganizationAdmin, - removeOrganizationAdmin + protectedRoutes }; diff --git a/backend/apis/nodejs/src/routes/organization_post_routes.js b/backend/apis/nodejs/src/routes/organization_post_routes.js index 01f8d79..465e5c7 100644 --- a/backend/apis/nodejs/src/routes/organization_post_routes.js +++ b/backend/apis/nodejs/src/routes/organization_post_routes.js @@ -12,6 +12,8 @@ */ const organizationPostModel = require('../models/organization_post_model'); +const express = require('express'); +const jwtUtils = require('../utils/middleware_utils'); /** * POST Request @@ -64,10 +66,14 @@ async function deleteOrganizationPost (req, res) { } } +const protectedRoutes = express.Router(); +protectedRoutes.use(jwtUtils.verifyToken); +protectedRoutes.post('/organization/post', createOrganizationPost); +protectedRoutes.delete('/organization/post/:id', deleteOrganizationPost); + // Exporting a function // means making a JavaScript function defined in one // module available for use in another module. module.exports = { - createOrganizationPost, - deleteOrganizationPost + protectedRoutes }; diff --git a/backend/apis/nodejs/src/routes/organization_routes.js b/backend/apis/nodejs/src/routes/organization_routes.js index 7784396..29f35cb 100644 --- a/backend/apis/nodejs/src/routes/organization_routes.js +++ b/backend/apis/nodejs/src/routes/organization_routes.js @@ -12,6 +12,8 @@ */ const organizationModel = require('../models/organization_model'); +const express = require('express'); +const jwtUtils = require('../utils/middleware_utils'); /** * POST Request @@ -88,7 +90,7 @@ async function updateOrganization (req, res) { */ async function deleteOrganization (req, res) { try { - const isDeleteSuccessful = organizationModel.deleteOrganization(req.params.id, req.jwt.person_id); + const isDeleteSuccessful = await organizationModel.deleteOrganization(req.params.id, req.jwt.person_id); if (isDeleteSuccessful) { return res.status(200).json({ success: true }); } @@ -122,9 +124,16 @@ async function getOrganization (req, res) { } } +const publicRoutes = express.Router(); +publicRoutes.get('/organization/:id', getOrganization); + +const protectedRoutes = express.Router(); +protectedRoutes.use(jwtUtils.verifyToken); +protectedRoutes.post('/organization', createOrganization); +protectedRoutes.put('/organization/:id', updateOrganization); +protectedRoutes.delete('/organization/:id', deleteOrganization); + module.exports = { - createOrganization, - getOrganization, - updateOrganization, - deleteOrganization + publicRoutes, + protectedRoutes }; diff --git a/backend/apis/nodejs/src/routes/person_routes.js b/backend/apis/nodejs/src/routes/person_routes.js index 7705fe8..2416035 100644 --- a/backend/apis/nodejs/src/routes/person_routes.js +++ b/backend/apis/nodejs/src/routes/person_routes.js @@ -17,6 +17,8 @@ const bcrypt = require('bcrypt'); const crypto = require('crypto'); const personModel = require('../models/person_model'); const activationModel = require('../models/activation_model'); +const express = require('express'); + /** * POST Request * @@ -257,15 +259,22 @@ async function confirmActivation(req, res){ } } +const publicRoutes = express.Router(); // Routes not requiring token +publicRoutes.post('/register', registerPerson); +publicRoutes.post('/login', login); +publicRoutes.get('/person/:id/details', getPerson); +publicRoutes.get('/person/activation', confirmActivation); + +const protectedRoutes = express.Router(); // Routes requiring token +protectedRoutes.use(jwtUtils.verifyToken); +protectedRoutes.get('/person/myself', getMyself); +protectedRoutes.put('/person/', updatePerson); +protectedRoutes.delete('/person/delete', deletePerson); + // Exporting a function // means making a JavaScript function defined in one // module available for use in another module. module.exports = { - registerPerson, - login, - getPerson, - getMyself, - updatePerson, - deletePerson, - confirmActivation + publicRoutes, + protectedRoutes };