Implemented basic entities, routes, seed scripts
This commit is contained in:
38
src/errors/customErrors.ts
Normal file
38
src/errors/customErrors.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
/* eslint-disable max-classes-per-file */
|
||||
|
||||
type ErrorData = { [key: string]: any };
|
||||
|
||||
export class CustomError extends Error {
|
||||
constructor(
|
||||
public message: string,
|
||||
public code: string | number = 'INTERNAL_ERROR',
|
||||
public status: number = 500,
|
||||
public data: ErrorData = {},
|
||||
) {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
export class RouteNotFoundError extends CustomError {
|
||||
constructor(originalUrl: string) {
|
||||
super(`Route '${originalUrl}' does not exist.`, 'ROUTE_NOT_FOUND', 404);
|
||||
}
|
||||
}
|
||||
|
||||
export class EntityNotFoundError extends CustomError {
|
||||
constructor(entityName: string) {
|
||||
super(`${entityName} not found.`, 'ENTITY_NOT_FOUND', 404);
|
||||
}
|
||||
}
|
||||
|
||||
export class BadUserInputError extends CustomError {
|
||||
constructor(errorData: ErrorData) {
|
||||
super('There were validation errors.', 'BAD_USER_INPUT', 400, errorData);
|
||||
}
|
||||
}
|
||||
|
||||
export class InvalidTokenError extends CustomError {
|
||||
constructor(message = 'Authentication token is invalid.') {
|
||||
super(message, 'INVALID_TOKEN', 401);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user