From df793c2da495b6dafed081c9832965ff8eba3645 Mon Sep 17 00:00:00 2001
From: Lucas Schoenfelder <les17@inf.ufpr.br>
Date: Tue, 19 Jan 2021 21:52:32 -0300
Subject: [PATCH] fixed update email/password functionality

---
 .../UserPageTabs/PanelGerenciarConta.js       | 26 ++++------
 src/Pages/EditProfilePage.js                  | 47 +++++++++++++++++--
 2 files changed, 53 insertions(+), 20 deletions(-)

diff --git a/src/Components/TabPanels/UserPageTabs/PanelGerenciarConta.js b/src/Components/TabPanels/UserPageTabs/PanelGerenciarConta.js
index e111f1a9..0726f2c3 100644
--- a/src/Components/TabPanels/UserPageTabs/PanelGerenciarConta.js
+++ b/src/Components/TabPanels/UserPageTabs/PanelGerenciarConta.js
@@ -59,21 +59,18 @@ export default function TabPanelGerenciarConta (props) {
                 key : flag,
                 value : userInput
             })
-            console.log(senhaAtual)
         }
         else if(type === 'novaSenha') {
             setNovaSenha({...novaSenha,
                 key : flag,
                 value : userInput
             })
-            console.log(novaSenha)
         }
         else if (type === 'confirmacao'){
             setNovaSenhaConfirmacao({...novaSenhaConfirmacao,
                 key : flag,
                 value : userInput
             })
-            console.log(novaSenhaConfirmacao)
         }
     }
 
@@ -86,7 +83,6 @@ export default function TabPanelGerenciarConta (props) {
             value : userInput
         })
 
-        console.log(novoEmail)
     }
 
     const limpaCamposForm = () => {
@@ -110,21 +106,18 @@ export default function TabPanelGerenciarConta (props) {
         e.preventDefault()
 
         if (type === 'senha'){
-            if (senhaAtual.value === localStorage.getItem("@portalmec/senha")) {
-                const login = {senhaAtual : senhaAtual.value, novaSenha : novaSenha.value, novaSenhaConfirmacao : novaSenhaConfirmacao.value}
-
-                if (!(senhaAtual.key || novaSenha.key || novaSenhaConfirmacao.key)) {
-                    console.log(login)
-                    limpaCamposForm()
-                    props.handleSnackbar()
-                }
-            }
-            else {
-                console.log(localStorage.getItem("@portalmec/senha"), senhaAtual.value)
+            if (!(senhaAtual.key || novaSenha.key || novaSenhaConfirmacao.key)) {
+                const info = {user : {password : novaSenha.value}}
+                props.updateUserPassword(info)
+
+                limpaCamposForm()
             }
         }
         else {
-            console.log(novoEmail.value)
+            const info = {user : {email : novoEmail.value}}
+
+            props.updateUserEmail(info)
+
         }
 
     }
@@ -222,4 +215,3 @@ export default function TabPanelGerenciarConta (props) {
         </>
     )
 }
- 
diff --git a/src/Pages/EditProfilePage.js b/src/Pages/EditProfilePage.js
index 922c1544..35d8e563 100644
--- a/src/Pages/EditProfilePage.js
+++ b/src/Pages/EditProfilePage.js
@@ -38,7 +38,6 @@ export default function EditProfilePage (props) {
         handleSnackbar(false);
     }
 
-
     const updateUserInfo = (newUserInfo) => {
         console.log(newUserInfo)
         let config = getAxiosConfig()
@@ -50,8 +49,48 @@ export default function EditProfilePage (props) {
                 if ( res.headers['access-token'] ) {
                     sessionStorage.setItem('@portalmec/accessToken', res.headers['access-token'])
                 }
-                
+
                 props.history.push('/perfil')
+
+            },
+            (err) => {
+                console.log(err)
+            }
+        )
+    }
+
+    const updateUserEmail = (newUserInfo) => {
+        let config = getAxiosConfig()
+
+        axios.put( (`${apiUrl}/users/` + id), newUserInfo, config
+        ).then (
+            (res) => {
+                console.log(res)
+                if ( res.headers['access-token'] ) {
+                    sessionStorage.setItem('@portalmec/accessToken', res.headers['access-token'])
+                }
+
+                sessionStorage.setItem('@portalmec/uid', res.headers['uid'])
+            },
+            (err) => {
+                console.log(err)
+            }
+        )
+    }
+
+    const updateUserPassword = (newUserInfo) => {
+        let config = getAxiosConfig()
+
+        axios.put( (`${apiUrl}/users/` + id), newUserInfo, config
+        ).then (
+            (res) => {
+                console.log(res)
+                if ( res.headers['access-token'] ) {
+                    sessionStorage.setItem('@portalmec/accessToken', res.headers['access-token'])
+                }
+
+                handleSnackbar(true)
+                
             },
             (err) => {
                 console.log(err)
@@ -98,7 +137,9 @@ export default function EditProfilePage (props) {
                         {tabValue === 0 && <TabPanelEditarPerfil updateUserInfo={updateUserInfo}/>}
                         {tabValue === 1 && <TabPanelSolicitarContaProfessor/>}
                     </Paper>
-                        {tabValue === 2 && <TabPanelGerenciarConta handleSnackbar={() => {handleSnackbar(true)}}/>}
+                        {tabValue === 2 && <TabPanelGerenciarConta updateUserEmail={updateUserEmail}
+                        updateUserPassword={updateUserPassword}
+                        />}
                 </TabContentDiv>
             </MainContainerDiv>
             </div>
-- 
GitLab