diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 71d24b5c84bebdc063dae34358d72e8e0b9aab62..15244b99080f6dc709bffa5c355c5b363562f5c6 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -1353,50 +1353,27 @@ function executeRestfulFunction(type, that, fn, ...args) { if (type === "private") { return new Penpal.Promise(executeResult => { fn.apply(that, args).then((response) => { - if (response.data.code === "400" && response.data.status === "Bad session") { - if (currentlyAuthenticatedIdentity !== "" && currentlyAuthenticatedIdentity !== null) { - viamApi.identityLogin("previousaddeddevice").then((response1) => { - if (response1.data.code === "200") { - const uuid = response1.data.data["Uuid"]; - const token = response1.data.data["Session"]; + const identity = currentlyAuthenticatedIdentity || currentlyLoadedIdentity; + + if (response.data.code === "400" && response.data.status === "Bad session" && identity) { + viamApi.identityLogin("previousaddeddevice") + .then((response) => { + if (response.data.code === "200") { + const uuid = response.data.data["Uuid"]; + const token = response.data.data["Session"]; viamApi.setSessionData(uuid, token); localStorage.setItem("uuid", uuid); localStorage.setItem("token", token); - localStorage.setItem("authenticatedIdentity", currentlyAuthenticatedIdentity.authentication.publicKey); - window.currentlyAuthenticatedIdentity = loadedIdentities[currentlyAuthenticatedIdentity.authentication.publicKey]; - setKeyForUUID(uuid, currentlyAuthenticatedIdentity.authentication.publicKey); + localStorage.setItem("authenticatedIdentity", identity.authentication.publicKey); + window.currentlyAuthenticatedIdentity = loadedIdentities[identity.authentication.publicKey]; + setKeyForUUID(uuid, identity.authentication.publicKey); window.lastTimeGetProfile = 0; - fn.apply(null, args).then((response2) => { - executeResult(response2.data); - }); + fn.apply(null, args).then(({data}) => executeResult(data)); } else { - executeResult(response1.data); + executeResult(response.data); } - }); - } else { - if (currentlyLoadedIdentity !== "" && currentlyLoadedIdentity !== null) { - viamApi.identityLogin("previousaddeddevice").then((response1) => { - if (response1.data.code === "200") { - const uuid = response1.data.data["Uuid"]; - const token = response1.data.data["Session"]; - viamApi.setSessionData(uuid, token); - localStorage.setItem("uuid", uuid); - localStorage.setItem("token", token); - localStorage.setItem("authenticatedIdentity", currentlyLoadedIdentity.authentication.publicKey); - window.currentlyAuthenticatedIdentity = loadedIdentities[currentlyLoadedIdentity.authentication.publicKey]; - setKeyForUUID(uuid, currentlyLoadedIdentity.authentication.publicKey); - window.lastTimeGetProfile = 0; - fn.apply(null, args).then((response2) => { - executeResult(response2.data); - }); - } else { - executeResult(response1.data); - } - }); - } else { - executeResult(response.data); - } - } + }) + .catch(console.warn); } else { executeResult(response.data); }