From fce31ebfe5c0a0b9270f8bdd9b120968d3ee4fa8 Mon Sep 17 00:00:00 2001
From: Lucas Schoenfelder <les17@inf.ufpr.br>
Date: Wed, 3 Feb 2021 10:07:24 -0300
Subject: [PATCH] final version done

---
 .../HelperFunctions/getAxiosConfig.js         | 60 +++++++++++++++----
 1 file changed, 48 insertions(+), 12 deletions(-)

diff --git a/src/Components/HelperFunctions/getAxiosConfig.js b/src/Components/HelperFunctions/getAxiosConfig.js
index cc75bd2f..84b1682f 100644
--- a/src/Components/HelperFunctions/getAxiosConfig.js
+++ b/src/Components/HelperFunctions/getAxiosConfig.js
@@ -22,25 +22,56 @@ export function getAxiosConfigFromJSON () {
     return config
 }
 
-export function updateHeaders (newHeaders) {
-    sessionStorage.setItem('@portalmec/accessToken', newHeaders['access-token'])
+function checkPreviousTokens (new_token) {
 
-    let auth_headers = JSON.parse(sessionStorage.getItem('@portalmec/auth_headers'))
+    let prev_tokens = JSON.parse(sessionStorage.getItem('@portalmec/tokens'))
 
-    if (auth_headers) {
-        auth_headers['access-token'] = newHeaders['access-token']
+    if (prev_tokens) {
+        console.log('hasOwnProperty = ', prev_tokens.hasOwnProperty(new_token))
+        if (!prev_tokens.hasOwnProperty(new_token)) {
+            prev_tokens[new_token] = 1
+            console.log('adicionando token', new_token, ' a hash')
+            sessionStorage.setItem('@portalmec/tokens', JSON.stringify(prev_tokens))
+            return true
+        }
+        else {
+            return false
+        }
     }
     else {
-        auth_headers = {
-            client: newHeaders.client,
-            "access-token": newHeaders['access-token'],
-            uid: newHeaders.uid,
-            expiry: newHeaders.expiry,
-            "token-type": "Bearer"
+        let tokens = {}
+        tokens[new_token] = 1
+        console.log('adicionando token', new_token, ' a hash')
+        sessionStorage.setItem('@portalmec/tokens', JSON.stringify(tokens))
+        return true
+    }
+
+}
+
+export function updateHeaders (newHeaders) {
+
+    if (checkPreviousTokens(newHeaders['access-token'])) {
+
+        sessionStorage.setItem('@portalmec/accessToken', newHeaders['access-token'])
+
+        let auth_headers = JSON.parse(sessionStorage.getItem('@portalmec/auth_headers'))
+
+        if (auth_headers) {
+            auth_headers['access-token'] = newHeaders['access-token']
         }
+        else {
+            auth_headers = {
+                client: newHeaders.client,
+                "access-token": newHeaders['access-token'],
+                uid: newHeaders.uid,
+                expiry: newHeaders.expiry,
+                "token-type": "Bearer"
+            }
+        }
+
+        sessionStorage.setItem('@portalmec/auth_headers', JSON.stringify(auth_headers))
     }
 
-    sessionStorage.setItem('@portalmec/auth_headers', JSON.stringify(auth_headers))
 }
 
 export const axiosGetRequest = (url, onSuccess, onError) => {
@@ -50,6 +81,7 @@ export const axiosGetRequest = (url, onSuccess, onError) => {
         (response) => {
 
             if ( response.headers['access-token'] && response.status !== 304) {
+                console.log('filtered = ', response)
                 updateHeaders(response.headers)
             }
 
@@ -68,6 +100,7 @@ export const axiosDeleteRequest = (url, onSuccess, onError) => {
         (response) => {
 
             if ( response.headers['access-token'] && response.status !== 304) {
+                console.log('filtered = ', response)
                 updateHeaders(response.headers)
             }
 
@@ -86,6 +119,7 @@ export const axiosPutRequest = (url, payload, onSuccess, onError) => {
         (response) => {
 
             if ( response.headers['access-token'] && response.status !== 304) {
+                console.log('filtered = ', response)
                 updateHeaders(response.headers)
             }
 
@@ -104,6 +138,7 @@ export const axiosPostRequest = (url, payload, onSuccess, onError) => {
         (response) => {
 
             if ( response.headers['access-token'] && response.status !== 304) {
+                console.log('filtered = ', response)
                 updateHeaders(response.headers)
             }
 
@@ -131,6 +166,7 @@ export const axiosAllRequest = (urls, onSuccess, onError) => {
         (responseArray) => {
             var aux = responseArray.filter(filterFunction)
             if (aux[0]) {
+                console.log('filtered = ', aux)
                 updateHeaders(aux[0].headers)
             }
 
-- 
GitLab