diff --git a/src/pages/Perfil.tsx b/src/pages/Perfil.tsx index be7d6bf..7c6c7f3 100644 --- a/src/pages/Perfil.tsx +++ b/src/pages/Perfil.tsx @@ -33,7 +33,7 @@ import { refreshSession } from "../services/refreshSession"; const Perfil: React.FC = () => { const [showToast, setShowToast] = useState(false); - const [messageToast, setMessageToast ] = useState(''); + const [messageToast, setMessageToast] = useState(''); const [inputValues, setInputValues] = useReducer( (state: any, newState: any) => ({ ...state, ...newState }), @@ -60,33 +60,36 @@ const Perfil: React.FC = () => { let userId = '' // verify if user is authenticated - const refreshedSession = await refreshSession() + const refreshSessionRes = await refreshSession() - if (refreshedSession.error) { + if (refreshSessionRes.error) { redirectUserToLogin() return } - - await usersRoutes.getById(userId).then(response => { - if (response.status === 'error') { - setMessageToast(response.message.data) - setShowToast(true); - - return - } - - const userData = response.data - - setInputValues({ - 'name': userData.name, - 'lastname': userData.lastname, - 'email': userData.email, - 'birth_date': userData.birth_date, - 'bio': userData.bio - }); - }).catch(() => { - redirectUserToLogin() - }) + + if (refreshSessionRes.userId) { + userId = refreshSessionRes.userId + } + + // get user info by ID + const getByIdRes = await usersRoutes.getById(userId) + + if (getByIdRes.error) { + setMessageToast(getByIdRes.message.data) + setShowToast(true) + + return + } + + const userData = getByIdRes.data + + setInputValues({ + 'name': userData.name, + 'lastname': userData.lastname, + 'email': userData.email, + 'birth_date': userData.birth_date, + 'bio': userData.bio + }); } const userToken = LocalStorage.getToken() @@ -94,8 +97,7 @@ const Perfil: React.FC = () => { if (!userToken) { redirectUserToLogin() } - - // const refreshResponse = refreshSession() + loadUserData() }, [history]); diff --git a/src/services/users/getById.ts b/src/services/users/getById.ts new file mode 100644 index 0000000..9ea9a5c --- /dev/null +++ b/src/services/users/getById.ts @@ -0,0 +1,35 @@ +import * as usersRoutes from "../../services/api/users"; + +interface getByIdReturn { + userId?: string; + error?: boolean; + errorMessage?: string; +} + +interface getByIdResponse { + status?: string; + message?: string; + userId?: string; +} + +export const getById = async (userId: string): Promise => { + try { + let res: getByIdResponse = await usersRoutes.getById(userId) + + if (res.status === "error") { + return { + error: true, + errorMessage: res.message, + }; + } + + return { + userId: res.userId, + }; + } catch(err) { + return { + error: true, + errorMessage: "Por favor, autentique-se.", + }; + } +};