From 40e6f58bf4b7f180fa2e409f922ff6ae9b471d3b Mon Sep 17 00:00:00 2001 From: Ramesh Kumar <ramesh.p@matriotsolutions.com> Date: Thu, 18 Mar 2021 13:58:47 +0530 Subject: [PATCH] TMSS-649: Updated function names and added logout on 401 status from API call. --- SAS/TMSS/frontend/tmss_webapp/src/App.js | 4 ++-- .../tmss_webapp/src/response.handler.js | 19 ++++++++++++------- .../tmss_webapp/src/utils/ui.constants.js | 2 +- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/SAS/TMSS/frontend/tmss_webapp/src/App.js b/SAS/TMSS/frontend/tmss_webapp/src/App.js index ebb48782ebc..74a6f8c2bd0 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 9c1ee7d257a..7c4da4c87de 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 c0ac1f936eb..b2cdb715626 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'}, -- GitLab