File: //var/www/api-management/src/shared/utils/error-handler.ts
import { HttpException, HttpStatus } from '@nestjs/common';
import messages from '../messages/messages';
export function handleValidationError(
error: any,
login: boolean = false,
): HttpException {
// Verificar si es un error de validación de Mongoose
if (error.name === 'ValidationError') {
// Formatear los mensajes de error de validación
const validationErrors = [];
for (const field in error.errors) {
if (error.errors.hasOwnProperty(field)) {
validationErrors.push(error.errors[field].message);
}
}
return new HttpException(
{
status: HttpStatus.BAD_REQUEST,
message: messages.error.validation,
error: validationErrors[0],
},
HttpStatus.BAD_REQUEST,
);
} else if (login) {
return new HttpException(
{
status: 401,
error: error,
},
401,
);
} else {
return new HttpException(
{
status: error.status ? error.status : HttpStatus.INTERNAL_SERVER_ERROR,
error: error,
message: messages.error.server,
},
error.status ? error.status : HttpStatus.INTERNAL_SERVER_ERROR,
);
}
}