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 + // } +// } +};