better errors + better tools
This commit is contained in:
@ -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 });
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user