mirror of
https://github.com/xfarrow/blink
synced 2025-06-27 09:03:02 +02:00
Following API best practices
This commit is contained in:
@ -38,8 +38,9 @@ async function isPersonOrganizationAdministrator(personId, organizationId) {
|
||||
*/
|
||||
async function addOrganizationAdministrator(personId, organizationId, requester) {
|
||||
|
||||
const isPersonAdmin = await organization_admin_model.isPersonAdmin(requester, organizationId);
|
||||
if (isPersonAdmin) {
|
||||
const isRequesterAdmin = await isPersonOrganizationAdministrator(requester, organizationId);
|
||||
const isPersonAdmin = await isPersonOrganizationAdministrator(personId, organizationId);
|
||||
if (isRequesterAdmin && !isPersonAdmin) {
|
||||
await knex('OrganizationAdministrator')
|
||||
.insert({
|
||||
id_person: personId,
|
||||
|
@ -25,14 +25,14 @@ const jwtUtils = require('../utils/middleware_utils');
|
||||
*/
|
||||
async function addOrganizationAdmin(req, res) {
|
||||
// Ensure that the required fields are present before proceeding
|
||||
if (!req.body.organization_id || !req.body.person_id) {
|
||||
if (!req.params.id || !req.body.person_id) {
|
||||
return res.status(400).json({
|
||||
error: 'Invalid request'
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
const success = await organizationAdminModel.addOrganizationAdministrator(req.body.person_id, req.body.organization_id, req.jwt.person_id);
|
||||
const success = await organizationAdminModel.addOrganizationAdministrator(req.body.person_id, req.params.id, req.jwt.person_id);
|
||||
if (success) {
|
||||
return res.status(200).json({
|
||||
success: true
|
||||
@ -60,14 +60,14 @@ async function addOrganizationAdmin(req, res) {
|
||||
*/
|
||||
async function removeOrganizationAdmin(req, res) {
|
||||
// Ensure that the required fields are present before proceeding
|
||||
if (!req.body.organization_id) {
|
||||
if (!req.params.organizationId) {
|
||||
return res.status(400).json({
|
||||
error: 'Invalid request'
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
await organizationAdminModel.removeOrganizationAdmin(req.jwt.person_id, req.body.organization_id);
|
||||
await organizationAdminModel.removeOrganizationAdmin(req.jwt.person_id, req.params.organizationId);
|
||||
return res.status(200).json({
|
||||
success: true
|
||||
});
|
||||
@ -81,8 +81,8 @@ async function removeOrganizationAdmin(req, res) {
|
||||
|
||||
const protectedRoutes = express.Router();
|
||||
protectedRoutes.use(jwtUtils.verifyToken);
|
||||
protectedRoutes.post('/organization/admin', addOrganizationAdmin);
|
||||
protectedRoutes.delete('/organization/admin', removeOrganizationAdmin);
|
||||
protectedRoutes.post('/organizations/:id/admins', addOrganizationAdmin);
|
||||
protectedRoutes.delete('/organizations/:organizationId/admins/me', removeOrganizationAdmin);
|
||||
|
||||
module.exports = {
|
||||
protectedRoutes
|
||||
|
@ -25,20 +25,25 @@ const jwtUtils = require('../utils/middleware_utils');
|
||||
*/
|
||||
async function createOrganizationPost(req, res) {
|
||||
// Ensure that the required fields are present before proceeding
|
||||
if (!req.body.organization_id || !req.body.content) {
|
||||
if (!req.params.idOrganization || !req.body.content) {
|
||||
return res.status(400).json({
|
||||
error: 'Invalid request'
|
||||
});
|
||||
}
|
||||
|
||||
const organization = organizationPostModel.createOrganizationPost(
|
||||
req.body.organization_id,
|
||||
const organizationPost = organizationPostModel.createOrganizationPost(
|
||||
req.params.idOrganization,
|
||||
req.body.content,
|
||||
req.jwt.person_id);
|
||||
|
||||
try {
|
||||
const insertedOrganization = await organizationPostModel.insertOrganizationPost(organization);
|
||||
return res.status(200).json(insertedOrganization);
|
||||
const insertedOrganization = await organizationPostModel.insertOrganizationPost(organizationPost);
|
||||
if(!!insertedOrganization){
|
||||
return res.status(200).json(insertedOrganization);
|
||||
}
|
||||
return res.status(401).json({
|
||||
error: 'Forbidden'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(`Error in function ${createOrganizationPost.name}: ${error}`);
|
||||
return res.status(500).json({
|
||||
@ -78,8 +83,8 @@ async function deleteOrganizationPost(req, res) {
|
||||
|
||||
const protectedRoutes = express.Router();
|
||||
protectedRoutes.use(jwtUtils.verifyToken);
|
||||
protectedRoutes.post('/organization/post', createOrganizationPost);
|
||||
protectedRoutes.delete('/organization/post/:id', deleteOrganizationPost);
|
||||
protectedRoutes.post('/organizations/:idOrganization/posts', createOrganizationPost);
|
||||
protectedRoutes.delete('/organizations/posts/:id', deleteOrganizationPost);
|
||||
|
||||
// Exporting a function
|
||||
// means making a JavaScript function defined in one
|
||||
|
@ -147,13 +147,13 @@ async function getOrganization(req, res) {
|
||||
}
|
||||
|
||||
const publicRoutes = express.Router();
|
||||
publicRoutes.get('/organization/:id', getOrganization);
|
||||
publicRoutes.get('/organizations/:id', getOrganization);
|
||||
|
||||
const protectedRoutes = express.Router();
|
||||
protectedRoutes.use(jwtUtils.verifyToken);
|
||||
protectedRoutes.post('/organization', createOrganization);
|
||||
protectedRoutes.put('/organization/:id', updateOrganization);
|
||||
protectedRoutes.delete('/organization/:id', deleteOrganization);
|
||||
protectedRoutes.post('/organizations', createOrganization);
|
||||
protectedRoutes.put('/organizations/:id', updateOrganization);
|
||||
protectedRoutes.delete('/organizations/:id', deleteOrganization);
|
||||
|
||||
module.exports = {
|
||||
publicRoutes,
|
||||
|
@ -92,7 +92,7 @@ async function registerPerson(req, res) {
|
||||
*
|
||||
* @returns The token
|
||||
*/
|
||||
async function login(req, res) {
|
||||
async function createTokenByEmailAndPassword(req, res) {
|
||||
// Ensure that the required fields are present before proceeding
|
||||
if (!req.body.email || !req.body.password) {
|
||||
return res.status(400).json({
|
||||
@ -113,7 +113,7 @@ async function login(req, res) {
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Error in function ${login.name}: ${error}`);
|
||||
console.error(`Error in function ${createTokenByEmailAndPassword.name}: ${error}`);
|
||||
return res.status(500).json({
|
||||
error: 'Internal server error'
|
||||
});
|
||||
@ -312,16 +312,16 @@ 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);
|
||||
publicRoutes.post('/persons', registerPerson);
|
||||
publicRoutes.post('/persons/me/token', createTokenByEmailAndPassword);
|
||||
publicRoutes.get('/persons/:id/details', getPerson);
|
||||
publicRoutes.get('/persons/me/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', deletePerson);
|
||||
protectedRoutes.get('/persons/me', getMyself);
|
||||
protectedRoutes.put('/persons/me', updatePerson);
|
||||
protectedRoutes.delete('/persons/me', deletePerson);
|
||||
|
||||
// Exporting a function
|
||||
// means making a JavaScript function defined in one
|
||||
|
Reference in New Issue
Block a user