diff --git a/src/utils/errors.js b/src/utils/errors.js index 3f42ec5..ef1fa8c 100644 --- a/src/utils/errors.js +++ b/src/utils/errors.js @@ -1,26 +1,30 @@ -const errorHandler = (err, environment) => { +const errorHandler = (err, environment, message) => { // no stacktraces leaked to user const responseJson = {} console.error(err) switch (err.code) { case 'ER_DUP_ENTRY': - responseJson.message = 'Conflict' + responseJson.message = message || 'Conflict' responseJson.code = 409 break case 'BAD_REQUEST': - responseJson.message = 'Bad Request' + responseJson.message = message || 'Bad Request' responseJson.code = 400 break + case 'FORBIDDEN': + responseJson.message = message || 'Forbidden' + responseJson.code = 403 + break case 'NOT_FOUND': - responseJson.message = 'Not Found' + responseJson.message = message || 'Not Found' responseJson.code = 404 break case 'UNPROCESSABLE_ENTITY': - responseJson.message = 'Unprocessable Entity' + responseJson.message = message || 'Unprocessable Entity' responseJson.code = 422 break default: - responseJson.message = 'Server Error' + responseJson.message = message || 'Server Error' responseJson.code = 500 break } @@ -33,6 +37,13 @@ const errorHandler = (err, environment) => { return responseJson } +const error403 = () => { + const err = new Error('Forbidden') + err.code = 'FORBIDDEN' + err.status = 403 + return err +} + const error404 = () => { const err = new Error('Not Found') err.code = 'NOT_FOUND' @@ -47,4 +58,4 @@ const error422 = (message = 'Unprocessable Entity') => { return err } -export { error404, error422, errorHandler } +export { error403, error404, error422, errorHandler } \ No newline at end of file