Skip to content

Commit

Permalink
Added loglevel to errors beign handled and added FileNotFound case
Browse files Browse the repository at this point in the history
  • Loading branch information
konzz committed Sep 19, 2024
1 parent 915289f commit 7c93022
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions app/api/utils/handleError.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { createError } from 'api/utils/index';
import { appContext } from 'api/utils/AppContext';
import { UnauthorizedError } from 'api/authorization.v2/errors/UnauthorizedError';
import { ValidationError } from 'api/common.v2/validation/ValidationError';
import { FileNotFound } from 'api/files/FileNotFound';

const ajvPrettifier = error => {
const errorMessage = [error.message];
Expand Down Expand Up @@ -58,39 +59,53 @@ const prettifyError = (error, { req = {}, uncaught = false } = {}) => {
let result = error;

if (error instanceof Error) {
result = { code: 500, message: error.stack };
result = { code: 500, message: error.stack, logLevel: 'error' };
}

if (error instanceof Ajv.ValidationError) {
result = { code: 422, message: error.message, validations: error.errors };
result = { code: 422, message: error.message, validations: error.errors, logLevel: 'debug' };
}

if (error.name === 'ValidationError') {
result = { code: 422, message: error.message, validations: error.properties };
result = {
code: 422,
message: error.message,
validations: error.properties,
logLevel: 'debug',
};
}

if (error instanceof ValidationError) {
result = { code: 422, message: error.message, validations: error.errors };
result = { code: 422, message: error.message, validations: error.errors, logLevel: 'debug' };
}

if (error instanceof UnauthorizedError) {
result = { code: 401, message: error.message };
result = { code: 401, message: error.message, logLevel: 'debug' };
}

if (error instanceof FileNotFound) {
result = { code: 404, message: error.message, logLevel: 'debug' };
}

if (error.name === 'MongoError') {
result.code = 500;
result.logLevel = 'error';
}

if (error.message && error.message.match(/Cast to ObjectId failed for value/)) {
result.code = 400;
result.logLevel = 'debug';
}

if (error.message && error.message.match(/rison decoder error/)) {
result.code = 400;
result.logLevel = 'debug';
}

if (uncaught) {
result.message = `uncaught exception or unhandled rejection, Node process finished !!\n ${result.message}`;
result.logLevel = 'error';
result.code = 500;
}

const obfuscatedRequest = obfuscateCredentials(req);
Expand Down Expand Up @@ -119,11 +134,12 @@ const getErrorMessage = (data, error) => {

const sendLog = (data, error, errorOptions) => {
const messageToLog = getErrorMessage(data, error);
if (data.code === 500) {
legacyLogger.error(messageToLog, errorOptions);
} else if (data.code === 400) {
if (data.logLevel === 'debug') {
legacyLogger.debug(messageToLog, errorOptions);
return;
}

legacyLogger.error(messageToLog, errorOptions);
};

function setRequestId(result) {
Expand Down

0 comments on commit 7c93022

Please sign in to comment.