diff --git a/javascript/src/iframe/globals.js b/javascript/src/iframe/globals.js deleted file mode 100644 index 7fda1ed93aee5e58946291346166225c7b907e30..0000000000000000000000000000000000000000 --- a/javascript/src/iframe/globals.js +++ /dev/null @@ -1,107 +0,0 @@ -import Penpal from 'penpal'; - -/** - * This script defines global variables and functions used everywhere. - * TODO: must be reworked to get rid of global vars - */ - -const ViamAPI = require('../../temp/viamapi'); -const WopiAPI = require('./wopiapi-iframe'); - -window.viamApi = new ViamAPI(); -window.viamAnonymousApi = new ViamAPI(); -window.wopiAPI = new WopiAPI(); -window.loadedIdentities = {}; -window.currentlyAuthenticatedIdentity = null; -window.currentlyLoadedIdentity = null; -window.lastTimeGetProfile = 0; - -window.executeRestfulFunction = function (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") { - console.log("Trying to login again") - if(currentlyAuthenticatedIdentity != "" && currentlyAuthenticatedIdentity != null) { - viamApi.identityLogin("previousaddeddevice").then((response1) => { - if (response1.data.code == "200") { - //console.log(response.data.data) - var uuid = response1.data.data["Uuid"] - var token = response1.data.data["Session"] - //console.log(uuid + " " + token) - viamApi.setSessionData(uuid, token) - localStorage.setItem("uuid", uuid) - localStorage.setItem("token", token) - localStorage.setItem("authenticatedIdentity", currentlyAuthenticatedIdentity.authentication.publicKey) - currentlyAuthenticatedIdentity = loadedIdentities[currentlyAuthenticatedIdentity.authentication.publicKey] - setKeyForUUID(uuid, currentlyAuthenticatedIdentity.authentication.publicKey) - console.log('Last', lastTimeGetProfile) - lastTimeGetProfile = 0; - fn.apply(null, args).then((response2) => { - executeResult(response2.data) - }); - } else { - executeResult(response1.data) - } - }); - } else { - if(currentlyLoadedIdentity != "" && currentlyLoadedIdentity != null) { - viamApi.identityLogin("previousaddeddevice").then((response1) => { - if (response1.data.code == "200") { - //console.log(response.data.data) - var uuid = response1.data.data["Uuid"] - var token = response1.data.data["Session"] - //console.log(uuid + " " + token) - viamApi.setSessionData(uuid, token) - localStorage.setItem("uuid", uuid) - localStorage.setItem("token", token) - localStorage.setItem("authenticatedIdentity", currentlyLoadedIdentity.authentication.publicKey) - currentlyAuthenticatedIdentity = loadedIdentities[currentlyLoadedIdentity.authentication.publicKey] - setKeyForUUID(uuid, currentlyLoadedIdentity.authentication.publicKey) - lastTimeGetProfile = 0; - fn.apply(null, args).then((response2) => { - executeResult(response2.data) - }); - } else { - executeResult(response1.data) - } - }); - } else { - executeResult(response.data) - } - } - } else { - executeResult(response.data) - } - }); - }); - } else { - return new Penpal.Promise(executeResult => { - fn.apply(that, args).then((response) => { - executeResult(response.data) - }); - }); - } -}; - -window.extendPinCodeTtl = function(key, pinCode) { - if(pinCode == null || pinCode == "") { - var now = new Date(); - var nowMillis = now.getTime(); - var ttl = window.sessionStorage.getItem("pincodettls/" + key); - if (ttl == null || ttl == "" || nowMillis >= parseInt(ttl)) { - clearPinCodeTtl(key) - return false - } else { - var ttl = now.getTime() + 10 * 60 * 1000; - window.sessionStorage.setItem("pincodettls/" + key, ttl); - } - } else { - var now = new Date(); - var ttl = now.getTime() + 10 * 60 * 1000; - window.sessionStorage.setItem("pincodettls/" + key, ttl); - window.sessionStorage.setItem("pincodes/" + key, pinCode); - } - - return true; -} \ No newline at end of file diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 10982b2b4f21846a525c03570ab9632e1ef271e2..438d893b88fa18048d5174bc46f9bd2ad50e231b 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -5,8 +5,9 @@ const asn1js = require('asn1js'); const pvutils = require('pvutils'); const Penpal = require('penpal').default; -require('./globals'); const penpalMethods = require('../../temp/penpal-methods').default; +const WopiAPI = require('./wopiapi-iframe'); +const ViamAPI = require('../../temp/viamapi'); //********************************************************************************* @@ -1272,6 +1273,34 @@ function getStack() { } } +function extendPinCodeTtl(key, pinCode) { + //console.log("Extending pincode ttl") + //console.log(getStack()) + //console.log("Extending pincode ttl for key: " + key) + //console.log(pinCode) + if(pinCode == null || pinCode == "") { + var now = new Date(); + var nowMillis = now.getTime(); + var ttl = window.sessionStorage.getItem("pincodettls/" + key); + if (ttl == null || ttl == "" || nowMillis >= parseInt(ttl)) { + clearPinCodeTtl(key) + return false + } else { + var ttl = now.getTime() + 10 * 60 * 1000; + window.sessionStorage.setItem("pincodettls/" + key, ttl); + } + } else { + var now = new Date(); + var ttl = now.getTime() + 10 * 60 * 1000; + window.sessionStorage.setItem("pincodettls/" + key, ttl); + window.sessionStorage.setItem("pincodes/" + key, pinCode); + } + + return true; +} + +window.extendPinCodeTtl = extendPinCodeTtl; + function clearPinCodeTtl(key) { //console.log("Clearing ttl for key: " + key) window.sessionStorage.removeItem("pincodettls/" + key) @@ -1319,6 +1348,83 @@ function destroyIdentityFromLocalStorage(key) { localStorage.setItem("identities", JSON.stringify(identities)) } +window.loadedIdentities = {} +window.wopiAPI = new WopiAPI(); +window.viamApi = new ViamAPI(); +window.viamAnonymousApi = new ViamAPI(); +window.currentlyAuthenticatedIdentity = null +window.currentlyLoadedIdentity = null +window.lastTimeGetProfile = 0 + +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") { + console.log("Trying to login again") + if(currentlyAuthenticatedIdentity != "" && currentlyAuthenticatedIdentity != null) { + viamApi.identityLogin("previousaddeddevice").then((response1) => { + if (response1.data.code == "200") { + //console.log(response.data.data) + var uuid = response1.data.data["Uuid"] + var token = response1.data.data["Session"] + //console.log(uuid + " " + token) + viamApi.setSessionData(uuid, token) + localStorage.setItem("uuid", uuid) + localStorage.setItem("token", token) + localStorage.setItem("authenticatedIdentity", currentlyAuthenticatedIdentity.authentication.publicKey) + currentlyAuthenticatedIdentity = loadedIdentities[currentlyAuthenticatedIdentity.authentication.publicKey] + setKeyForUUID(uuid, currentlyAuthenticatedIdentity.authentication.publicKey) + lastTimeGetProfile = 0; + fn.apply(null, args).then((response2) => { + executeResult(response2.data) + }); + } else { + executeResult(response1.data) + } + }); + } else { + if(currentlyLoadedIdentity != "" && currentlyLoadedIdentity != null) { + viamApi.identityLogin("previousaddeddevice").then((response1) => { + if (response1.data.code == "200") { + //console.log(response.data.data) + var uuid = response1.data.data["Uuid"] + var token = response1.data.data["Session"] + //console.log(uuid + " " + token) + viamApi.setSessionData(uuid, token) + localStorage.setItem("uuid", uuid) + localStorage.setItem("token", token) + localStorage.setItem("authenticatedIdentity", currentlyLoadedIdentity.authentication.publicKey) + currentlyAuthenticatedIdentity = loadedIdentities[currentlyLoadedIdentity.authentication.publicKey] + setKeyForUUID(uuid, currentlyLoadedIdentity.authentication.publicKey) + lastTimeGetProfile = 0; + fn.apply(null, args).then((response2) => { + executeResult(response2.data) + }); + } else { + executeResult(response1.data) + } + }); + } else { + executeResult(response.data) + } + } + } else { + executeResult(response.data) + } + }); + }); + } else { + return new Penpal.Promise(executeResult => { + fn.apply(that, args).then((response) => { + executeResult(response.data) + }); + }); + } +} + +window.executeRestfulFunction = executeRestfulFunction; + function loadIdentityInternal(identityKey, pinCode) { return new Penpal.Promise(result => { console.log("Loading identity with pincode: " + pinCode) @@ -1510,7 +1616,7 @@ const connection = Penpal.connectToParent({ "code" : "200", "status" : "Identity created" }) - }).catch(console.error); + }); }) }, listIdentities() { @@ -2158,7 +2264,7 @@ const connection = Penpal.connectToParent({ } }) -connection.promise.then(async parent => { +connection.promise.then(parent => { var identities = localStorage.getItem("identities") console.log("Library loaded at: " + new Date().toISOString())