Initial commit
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
class AppError extends Error {
|
||||
constructor(message, statusCode, isOperational = true, errors = null) {
|
||||
super(message);
|
||||
this.statusCode = statusCode;
|
||||
this.isOperational = isOperational;
|
||||
this.errors = errors;
|
||||
Error.captureStackTrace(this, this.constructor);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = AppError;
|
||||
@@ -0,0 +1,55 @@
|
||||
const AppError = require('./AppError');
|
||||
const config = require('../../config');
|
||||
|
||||
class ValidationError extends AppError {
|
||||
constructor(message, errors = null) {
|
||||
super(message, config.HTTP_STATUS.BAD_REQUEST, true, errors);
|
||||
this.name = 'ValidationError';
|
||||
}
|
||||
}
|
||||
|
||||
class NotFoundError extends AppError {
|
||||
constructor(message = 'Resource not found') {
|
||||
super(message, config.HTTP_STATUS.NOT_FOUND, true);
|
||||
this.name = 'NotFoundError';
|
||||
}
|
||||
}
|
||||
|
||||
class ConflictError extends AppError {
|
||||
constructor(message, errors = null) {
|
||||
super(message, config.HTTP_STATUS.CONFLICT, true, errors);
|
||||
this.name = 'ConflictError';
|
||||
}
|
||||
}
|
||||
|
||||
class UnauthorizedError extends AppError {
|
||||
constructor(message = 'Unauthorized') {
|
||||
super(message, config.HTTP_STATUS.UNAUTHORIZED, true);
|
||||
this.name = 'UnauthorizedError';
|
||||
}
|
||||
}
|
||||
|
||||
class ForbiddenError extends AppError {
|
||||
constructor(message = 'Forbidden') {
|
||||
super(message, config.HTTP_STATUS.FORBIDDEN, true);
|
||||
this.name = 'ForbiddenError';
|
||||
}
|
||||
}
|
||||
|
||||
class DatabaseError extends AppError {
|
||||
constructor(message = 'Database operation failed', originalError = null) {
|
||||
super(message, config.HTTP_STATUS.INTERNAL_SERVER_ERROR, false);
|
||||
this.name = 'DatabaseError';
|
||||
this.originalError = originalError;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
AppError,
|
||||
ValidationError,
|
||||
NotFoundError,
|
||||
ConflictError,
|
||||
UnauthorizedError,
|
||||
ForbiddenError,
|
||||
DatabaseError,
|
||||
};
|
||||
Reference in New Issue
Block a user