UNPKG

@gp_jcisneros/errors

Version:

Error handling utilities for GreenPay microservices and validation middleware

83 lines (73 loc) 2.04 kB
const { CustomError } = require('./CustomError'); /** * HTTP error class for API responses */ class HttpError extends CustomError { constructor(message, statusCode = 500) { super(message, { errorCode: `HTTP_${statusCode}`, description: message, integration: 'http-service', statusCode: statusCode }); this.name = 'HttpError'; this.type = 'HTTP_ERROR'; } /** * Create a 400 Bad Request error * @param {string} message - Error message * @returns {HttpError} - Bad Request error */ static badRequest(message) { return new HttpError(message, 400); } /** * Create a 401 Unauthorized error * @param {string} message - Error message * @returns {HttpError} - Unauthorized error */ static unauthorized(message = 'Unauthorized') { return new HttpError(message, 401); } /** * Create a 403 Forbidden error * @param {string} message - Error message * @returns {HttpError} - Forbidden error */ static forbidden(message = 'Forbidden') { return new HttpError(message, 403); } /** * Create a 404 Not Found error * @param {string} message - Error message * @returns {HttpError} - Not Found error */ static notFound(message = 'Not Found') { return new HttpError(message, 404); } /** * Create a 409 Conflict error * @param {string} message - Error message * @returns {HttpError} - Conflict error */ static conflict(message) { return new HttpError(message, 409); } /** * Create a 422 Unprocessable Entity error * @param {string} message - Error message * @returns {HttpError} - Unprocessable Entity error */ static unprocessableEntity(message) { return new HttpError(message, 422); } /** * Create a 500 Internal Server Error * @param {string} message - Error message * @returns {HttpError} - Internal Server Error */ static internalServerError(message = 'Internal Server Error') { return new HttpError(message, 500); } } module.exports = { HttpError };