File: /var/www/api-parametros/src/shared/utils/error-handler.ts
import { HttpException, HttpStatus } from '@nestjs/common';
import messages from '../messages/messages';
export function handleValidationError(error: any): HttpException {
if (error.name === 'ValidationError') {
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 (error.code === 11000) {
return new HttpException(
{
status: error.status ? error.status : HttpStatus.INTERNAL_SERVER_ERROR,
error: error.errmsg,
message: {
message: 'Dato duplicado',
summary: `${error.keyValue.nombre} ya existe en el sistema`,
},
},
error.status ? error.status : HttpStatus.INTERNAL_SERVER_ERROR,
);
} 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,
);
}
}