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);
}
// ...
}
}