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
*/
// 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 =====

View File

@ -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
};

View File

@ -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
};

View File

@ -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
};

View File

@ -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
};