Files
kavehhn f04c797be6 Initial commit: teaching institution management API.
Express/MongoDB backend with JWT auth, RBAC, S3 uploads, notifications, and scheduled jobs.
2026-08-09 04:18:08 +02:00

23 lines
657 B
JavaScript

// /utils/AppError.js
const errors = require('./errors.json');
class AppError extends Error {
constructor(errorCode, details = null, overrideMessage = null) {
const errorDef = errors[errorCode] || errors.INTERNAL_SERVER_ERROR;
const message = overrideMessage || errorDef.en;
super(message);
this.name = 'AppError';
this.errorCode = errorCode in errors ? errorCode : 'INTERNAL_SERVER_ERROR';
this.statusCode = errorDef.statusCode || 500;
this.details = details;
this.overrideMessage = overrideMessage;
this.isOperational = true;
Error.captureStackTrace(this, this.constructor);
}
}
module.exports = AppError;