102 lines
3.1 KiB
JavaScript
102 lines
3.1 KiB
JavaScript
export class AppError extends Error {
|
|
constructor(message, status = 500, service = null, method = null, details = null) {
|
|
super(message);
|
|
this.status = status;
|
|
this.service = service;
|
|
this.method = method;
|
|
this.details = details;
|
|
|
|
Error.captureStackTrace(this, this.constructor);
|
|
}
|
|
}
|
|
|
|
class ValidationError extends AppError {
|
|
constructor(message, details = null, service = null, method = null) {
|
|
super(message, 422, service, method, details);
|
|
}
|
|
}
|
|
|
|
class AuthenticationError extends AppError {
|
|
constructor(message, details = null, service = null, method = null) {
|
|
super(message, 401, service, method, details);
|
|
}
|
|
}
|
|
|
|
class AuthorizationError extends AppError {
|
|
constructor(message, details = null, service = null, method = null) {
|
|
super(message, 403, service, method, details);
|
|
}
|
|
}
|
|
|
|
class NotFoundError extends AppError {
|
|
constructor(message, details = null, service = null, method = null) {
|
|
super(message, 404, service, method, details);
|
|
}
|
|
}
|
|
|
|
class ConflictError extends AppError {
|
|
constructor(message, details = null, service = null, method = null) {
|
|
super(message, 409, service, method, details);
|
|
}
|
|
}
|
|
|
|
class DatabaseError extends AppError {
|
|
constructor(message, details = null, service = null, method = null) {
|
|
super(message, 500, service, method, details);
|
|
}
|
|
}
|
|
|
|
class BadRequestError extends AppError {
|
|
constructor(message, details = null, service = null, method = null) {
|
|
super(message, 400, service, method, details);
|
|
}
|
|
}
|
|
|
|
const SERVICE_NAME = "ErrorService";
|
|
class ErrorService {
|
|
static SERVICE_NAME = SERVICE_NAME;
|
|
constructor() {}
|
|
|
|
get serviceName() {
|
|
return ErrorService.SERVICE_NAME;
|
|
}
|
|
|
|
createError = (message, status = 500, service = null, method = null, details = null) => {
|
|
return new AppError(message, status, service, method, details);
|
|
};
|
|
|
|
createValidationError = (message, details = null, service = null, method = null) => {
|
|
return new ValidationError(message, details, service, method);
|
|
};
|
|
|
|
createAuthenticationError = (message = "Unauthorized", details = null, service = null, method = null) => {
|
|
return new AuthenticationError(message, details, service, method);
|
|
};
|
|
|
|
createAuthorizationError = (message, details = null, service = null, method = null) => {
|
|
return new AuthorizationError(message, details, service, method);
|
|
};
|
|
|
|
createNotFoundError = (message, details = null, service = null, method = null) => {
|
|
return new NotFoundError(message, details, service, method);
|
|
};
|
|
|
|
createConflictError = (message, details = null, service = null, method = null) => {
|
|
return new ConflictError(message, details, service, method);
|
|
};
|
|
|
|
createDatabaseError = (message, details = null, service = null, method = null) => {
|
|
return new DatabaseError(message, details, service, method);
|
|
};
|
|
|
|
createServerError = (message, details = null, service = null, method = null) => {
|
|
return this.createError(message, 500, service, method, details);
|
|
};
|
|
|
|
createBadRequestError = (message = "BadRequest", details = null, service = null, method = null) => {
|
|
return new BadRequestError(message, details, service, method);
|
|
};
|
|
}
|
|
|
|
export default ErrorService;
|