forked from Sunbird-Obsrv/obsrv-web-console
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathglobalErrorHandler.ts
More file actions
25 lines (23 loc) · 1.12 KB
/
globalErrorHandler.ts
File metadata and controls
25 lines (23 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* eslint-disable @typescript-eslint/no-unused-vars */
import { NextFunction, Request, Response } from 'express';
import { transform } from '../utils/transformResponse';
import appConfig from '../resources/appConfig';
import { logger } from '../utils/logger';
export default {
name: 'globalErrorHandler',
handler: () => (error: any, request: Request, response: Response, next: NextFunction) => {
const {
message = error.message || 'Internal Server Error',
status = error.status || 500,
responseCode = error.responseCode || 'SERVER_ERROR',
errorCode = error.errorCode || 'SERVER_ERROR',
} = error;
const { id = 'api' } = request.responsePayload || {};
response.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload');
logger.error(error)
if (request.url.includes("oauth/v1/login")) {
return response.redirect(`${appConfig.BASE_URL}/login?err=Invalid Credentials`);
}
response.status(status).json(transform({ id, responseCode, params: { err: errorCode, errmsg: message } }));
},
};