From f3969579f1befd5616d236929ffa0749bcf57930 Mon Sep 17 00:00:00 2001 From: Matheus Albino Brunhara Date: Wed, 25 May 2022 17:56:10 -0500 Subject: [PATCH] =?UTF-8?q?Tornando=20a=20fun=C3=A7=C3=A3o=20refreshSessio?= =?UTF-8?q?ns=20externa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Perfil.tsx | 20 +++++++--------- src/services/refreshSession.ts | 44 ++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 12 deletions(-) create mode 100644 src/services/refreshSession.ts diff --git a/src/pages/Perfil.tsx b/src/pages/Perfil.tsx index bce71b4..be7d6bf 100644 --- a/src/pages/Perfil.tsx +++ b/src/pages/Perfil.tsx @@ -29,6 +29,7 @@ import * as usersRoutes from '../services/api/users'; import './Perfil.css' import LocalStorage from "../LocalStorage"; +import { refreshSession } from "../services/refreshSession"; const Perfil: React.FC = () => { const [showToast, setShowToast] = useState(false); @@ -57,19 +58,14 @@ const Perfil: React.FC = () => { const loadUserData = async () => { let userId = '' - - await sessionRoutes.refresh().then(response => { - if (response.status === 'error') { - setMessageToast(response.message); - setShowToast(true); - - return - } - - userId = response.userId - }).catch(() => { + + // verify if user is authenticated + const refreshedSession = await refreshSession() + + if (refreshedSession.error) { redirectUserToLogin() - }) + return + } await usersRoutes.getById(userId).then(response => { if (response.status === 'error') { diff --git a/src/services/refreshSession.ts b/src/services/refreshSession.ts new file mode 100644 index 0000000..7d29d42 --- /dev/null +++ b/src/services/refreshSession.ts @@ -0,0 +1,44 @@ +import * as sessionRoutes from "../services/api/session"; + +interface refreshSessionReturn { + userId?: string; + error?: boolean; + errorMessage?: string; +} + +interface refreshSessionResponse { + status?: string; + message?: string; + userId?: string; +} + +export const refreshSession = async (): Promise => { + try { + let res: refreshSessionResponse = await sessionRoutes.refresh() + + if (res.status === "error") { + return { + error: true, + errorMessage: res.message, + }; + } + + return { + userId: res.userId, + }; + } catch(err) { + return { + error: true, + errorMessage: "Por favor, autentique-se.", + }; + } + // catch (err: any) { + // if (err.response) { + // // The client was given an error response (5xx, 4xx) + // } else if (err.request) { + // // The client never received a response, and the request was never left + // } else { + // // Anything else + // } +// } +};