docs
functions
Exceptions
ApiError

Descrição

Exporta uma classe ApiError que representa um erro retornado por uma API. A classe tem três atributos: message, code e statusCode.

  • O atributo message é uma mensagem de erro legível por humanos que descreve o erro.

  • O atributo code é uma string que representa o código de erro retornado pela API.

  • O atributo statusCode é um número que representa o código de status HTTP retornado pela API.

Uso

/**
 * Representa um erro de API com código, mensagem e status HTTP.
 */
class ApiError extends AppError {
  /**
   * O status HTTP associado ao erro.
   * @type {number}
   */
  readonly statusCode: number;
  /**
   * Cria uma instância de um erro de API com código, mensagem e status HTTP.
   *
   * @param {string} message - A mensagem de erro.
   * @param {string} code - O código de erro.
   * @param {number} statusCode - O status HTTP associado ao erro.
   */
  constructor(message: string, code: string, statusCode?: number);
}

Para usar essa classe, importe-a para seu arquivo e crie uma nova instância dela com a mensagem, o código de erro e o código de status HTTP que serão retornados pela API. Por exemplo:

// ...
import { ApiError } from '@burand/functions/exceptions';
 
@singleton()
export class UploadAvatarUseCase {
  constructor(private _user: UsersRepository) {}
 
  async execute({ userId, file }: IParams): Promise<void> {
    const user = await this._user.getById(userId);
 
    if (!user) {
      throw new ApiError('Only authenticated users can change avatar.', '@application/user/not-found', 404);
    }
 
    // ...
  }
}