better errors + better tools

This commit is contained in:
2022-10-30 19:35:35 +01:00
parent 46a7e07b86
commit 82d356ef5e
7 changed files with 93 additions and 53 deletions

View File

@ -9,7 +9,7 @@ declare module 'express-session' {
}
}
export function getId(req: Request): string {
export function getRequestId(req: Request): string {
return req.header('request-id') || 'unknown';
}
@ -22,8 +22,9 @@ export function RequestId(): RequestHandler {
export function CheckPermissions(): RequestHandler {
function getResourceId(req: Request): string | null {
if (req.params.uuid) return req.params.uuid;
if (req.body.uuid) return req.body.uuid;
if (req.method === 'GET' && req.params.uuid) return req.params.uuid;
if ((req.method === 'POST' || req.method === 'PUT') && req.body.uuid)
return req.body.uuid;
return null;
}
@ -48,6 +49,7 @@ export function CheckPermissions(): RequestHandler {
next({ status: 403, messsage: 'Forbidden' });
return;
}
if (canAccessRessource(req.session.user, ressourceId)) {
next();
return;
@ -56,7 +58,8 @@ export function CheckPermissions(): RequestHandler {
return;
}
next({ status: 401, messsage: 'Unauthorized' });
// Should be unreachable
next({ status: 403, messsage: 'Forbidden' });
};
}
@ -76,6 +79,6 @@ export function ErrorHandler(): ErrorRequestHandler {
return (error, req, res, next) => {
error.status
? res.status(error.status).send(error)
: res.status(500).send(error);
: res.status(500).send({ status: 500, message: error.message });
};
}