Initial commit: teaching institution management API.
Express/MongoDB backend with JWT auth, RBAC, S3 uploads, notifications, and scheduled jobs.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
// /utils/errorLocalization.js
|
||||
|
||||
const errors = require('./errors.json');
|
||||
const config = require('../config/config');
|
||||
|
||||
const resolveLanguage = (req) => {
|
||||
if (req && req.query && req.query.lang) {
|
||||
const lang = req.query.lang.toLowerCase();
|
||||
if (['fa', 'en'].includes(lang)) return lang;
|
||||
}
|
||||
if (req && req.headers && req.headers['accept-language']) {
|
||||
const headerLang = req.headers['accept-language'].toLowerCase();
|
||||
if (headerLang.includes('fa')) return 'fa';
|
||||
if (headerLang.includes('en')) return 'en';
|
||||
}
|
||||
return config.DEFAULT_LANG || 'en';
|
||||
};
|
||||
|
||||
const getLocalizedErrorMessage = (errorCode, req = null) => {
|
||||
const lang = resolveLanguage(req);
|
||||
const errorDef = errors[errorCode] || errors.INTERNAL_SERVER_ERROR;
|
||||
return errorDef[lang] || errorDef.en || 'An unexpected error occurred.';
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
resolveLanguage,
|
||||
getLocalizedErrorMessage
|
||||
};
|
||||
Reference in New Issue
Block a user