export class AppError extends Error { constructor( readonly statusCode: number, readonly code: string, message: string, ) { super(message); this.name = 'AppError'; } } export const badRequest = (code: string, message: string) => new AppError(400, code, message); export const unauthorized = (message = 'Nicht angemeldet') => new AppError(401, 'UNAUTHORIZED', message); export const forbidden = (message = 'Keine Berechtigung für diese Aktion') => new AppError(403, 'FORBIDDEN', message); export const notFound = (what: string) => new AppError(404, 'NOT_FOUND', `${what} nicht gefunden`); export const conflict = (code: string, message: string) => new AppError(409, code, message);