Some refactoring

This commit is contained in:
xfarrow 2024-03-04 16:37:22 +01:00
parent 797a69fe34
commit 3ea41c82d4
5 changed files with 52 additions and 40 deletions

View File

@ -15,7 +15,6 @@
===== BEGIN IMPORTING MODULES ===== BEGIN IMPORTING MODULES
*/ */
// TODO: clean up
require('dotenv').config(); require('dotenv').config();
const express = require('express'); const express = require('express');
const cors = require('cors'); const cors = require('cors');
@ -24,7 +23,6 @@ const personRoutes = require('./routes/person_routes.js');
const organizationRoutes = require('./routes/organization_routes.js'); const organizationRoutes = require('./routes/organization_routes.js');
const organizationAdminRoutes = require('./routes/organization_admin_routes.js'); const organizationAdminRoutes = require('./routes/organization_admin_routes.js');
const organizationPostRoutes = require('./routes/organization_post_routes.js'); const organizationPostRoutes = require('./routes/organization_post_routes.js');
const jwtUtils = require('./utils/middleware_utils.js');
/* /*
===== END IMPORTING MODULES ===== END IMPORTING MODULES
@ -51,28 +49,12 @@ app.use(rateLimit({
===== BEGIN ROUTE HANDLING ===== ===== BEGIN ROUTE HANDLING =====
*/ */
const publicRoutes = express.Router(); app.use('/api', personRoutes.publicRoutes);
publicRoutes.post('/register', personRoutes.registerPerson); app.use('/api', organizationRoutes.publicRoutes);
publicRoutes.post('/login', personRoutes.login); app.use('/api', personRoutes.protectedRoutes);
publicRoutes.get('/person/:id/details', personRoutes.getPerson); app.use('/api', organizationRoutes.protectedRoutes);
publicRoutes.get('/organization/:id', organizationRoutes.getOrganization); app.use('/api', organizationAdminRoutes.protectedRoutes);
publicRoutes.get('/person/activation', personRoutes.confirmActivation); app.use('/api', organizationPostRoutes.protectedRoutes);
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
/* /*
===== END ROUTE HANDLING ===== ===== END ROUTE HANDLING =====

View File

@ -12,6 +12,8 @@
*/ */
const organizationAdminModel = require('../models/organization_admin_model'); const organizationAdminModel = require('../models/organization_admin_model');
const express = require('express');
const jwtUtils = require('../utils/middleware_utils');
/** /**
* POST Method * 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 = { module.exports = {
addOrganizationAdmin, protectedRoutes
removeOrganizationAdmin
}; };

View File

@ -12,6 +12,8 @@
*/ */
const organizationPostModel = require('../models/organization_post_model'); const organizationPostModel = require('../models/organization_post_model');
const express = require('express');
const jwtUtils = require('../utils/middleware_utils');
/** /**
* POST Request * 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 // Exporting a function
// means making a JavaScript function defined in one // means making a JavaScript function defined in one
// module available for use in another module. // module available for use in another module.
module.exports = { module.exports = {
createOrganizationPost, protectedRoutes
deleteOrganizationPost
}; };

View File

@ -12,6 +12,8 @@
*/ */
const organizationModel = require('../models/organization_model'); const organizationModel = require('../models/organization_model');
const express = require('express');
const jwtUtils = require('../utils/middleware_utils');
/** /**
* POST Request * POST Request
@ -88,7 +90,7 @@ async function updateOrganization (req, res) {
*/ */
async function deleteOrganization (req, res) { async function deleteOrganization (req, res) {
try { 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) { if (isDeleteSuccessful) {
return res.status(200).json({ success: true }); 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 = { module.exports = {
createOrganization, publicRoutes,
getOrganization, protectedRoutes
updateOrganization,
deleteOrganization
}; };

View File

@ -17,6 +17,8 @@ const bcrypt = require('bcrypt');
const crypto = require('crypto'); const crypto = require('crypto');
const personModel = require('../models/person_model'); const personModel = require('../models/person_model');
const activationModel = require('../models/activation_model'); const activationModel = require('../models/activation_model');
const express = require('express');
/** /**
* POST Request * 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 // Exporting a function
// means making a JavaScript function defined in one // means making a JavaScript function defined in one
// module available for use in another module. // module available for use in another module.
module.exports = { module.exports = {
registerPerson, publicRoutes,
login, protectedRoutes
getPerson,
getMyself,
updatePerson,
deletePerson,
confirmActivation
}; };