HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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,
    );
  }
}