diff --git a/SAS/TMSS/frontend/tmss_webapp/src/App.js b/SAS/TMSS/frontend/tmss_webapp/src/App.js index ebb48782ebc1ac07dee5b0c9cd916e5b7c5f3d26..74a6f8c2bd0dc57fea26971a4d83c1bf3d076c4b 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/App.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/App.js @@ -8,7 +8,7 @@ import {AppFooter } from './layout/components/AppFooter'; import {RoutedContent} from './routes'; import {AppBreadcrumb } from "./layout/components/AppBreadcrumb"; import {withRouter } from 'react-router'; -import validateResponse from "./response.handler" +import handleResponse from "./response.handler" import { setAppGrowl } from './layout/components/AppGrowl'; import { Growl } from 'primereact/components/growl/Growl'; @@ -181,4 +181,4 @@ class App extends Component { } } -export default validateResponse(App); +export default handleResponse(App); diff --git a/SAS/TMSS/frontend/tmss_webapp/src/response.handler.js b/SAS/TMSS/frontend/tmss_webapp/src/response.handler.js index 9c1ee7d257ae1d70a7ba30a50ce1ae061756b71a..7c4da4c87de73f67983fb60f36e2c6aff269ab8d 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/response.handler.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/response.handler.js @@ -2,13 +2,14 @@ import React, {useEffect} from "react"; import axios from "axios"; import { appGrowl } from './layout/components/AppGrowl'; import UIConstants from './utils/ui.constants'; +import Auth from './authenticate/auth'; /** * Trigger and validate the response for https status code * @param {*} Wrapped * @returns */ -const validateResponse= Wrapped => { - function ValidateResponse(props) { +const handleResponse= Wrapped => { + function HandleResponse(props) { useEffect(()=>{ axios.interceptors.response.use(function (response) { return response; @@ -27,14 +28,18 @@ const validateResponse= Wrapped => { * @param {*} response */ function showMessage(response) { - const httpres = UIConstants.httpResponses[response.status]; - if(httpres) { - appGrowl.show({severity: httpres.severity, summary: httpres.summary, sticky: httpres.sticky, detail: '['+response.status+'] '+JSON.stringify(response.statusText)+ ' ['+httpres.detail+']'}); + const httpStatusMsg = UIConstants.httpStatusMessages[response.status]; + if(httpStatusMsg) { + appGrowl.show({severity: httpStatusMsg.severity, summary: httpStatusMsg.summary, sticky: httpStatusMsg.sticky, detail: '['+response.status+'] '+JSON.stringify(response.statusText)+ ' ['+httpStatusMsg.detail+']'}); } else { appGrowl.show({severity: 'error', summary: 'Error', sticky: 'true', detail: '['+response.status+'] '+JSON.stringify(response.statusText)+ ' '+JSON.stringify(response.data)}); } + if (response.status === 401) { + Auth.logout(); + window.location.href = "/login"; + } } - return ValidateResponse; + return HandleResponse; } -export default validateResponse; \ No newline at end of file +export default handleResponse; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js b/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js index c0ac1f936eb3f8fdbd1648431ad3d50bc3b2f789..b2cdb71562603a663bddc1420395566d4a823afb 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js @@ -3,7 +3,7 @@ const UIConstants = { timeline: { types: { NORMAL: "NORMAL", WEEKVIEW:"WEEKVIEW"} }, - httpResponses: { + httpStatusMessages: { 400: {severity: 'error', summary: 'Error', sticky: true, detail: 'Error while process request, please contact system admin'}, 401: {severity: 'error', summary: 'Error', sticky: true, detail: 'Not authenticated, Please retry to login with valid credential'}, 403: {severity: 'error', summary: 'Error', sticky: true, detail: 'Unknown request, please contact system admin'},