@gp_jcisneros/errors
Version:
Error handling utilities for GreenPay microservices
83 lines (73 loc) • 2.04 kB
JavaScript
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 };