From 07129b7df159fa71115bb720faba3f2c60d9f4e9 Mon Sep 17 00:00:00 2001
From: Markin Igor <markin.io210@gmail.com>
Date: Mon, 11 Feb 2019 14:13:16 +0300
Subject: [PATCH] Refactor setTimeout body.

---
 javascript/src/iframe/viamapi-iframe.js | 81 +++++++++++--------------
 1 file changed, 37 insertions(+), 44 deletions(-)

diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index 291ef3c..d3b362f 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -2291,32 +2291,31 @@ connection.promise.then(parent => {
   var identityLoadedEvent = false;
   var identityAuthenticatedEvent = false;
 
-  setInterval(function() {
-    if(window.currentlyAuthenticatedIdentity != null) {
-      var pinCode = getPincode(window.currentlyAuthenticatedIdentity.authentication.publicKey);
-      if(pinCode != null && pinCode !== "") {
-        getIdentityFromLocalStorage(window.currentlyAuthenticatedIdentity.authentication.publicKey,
-          pinCode, false).then((gotIdentity) => {
-          window.currentlyAuthenticatedIdentity = gotIdentity;
-          window.currentlyLoadedIdentity = gotIdentity;
-          if(identityAuthenticatedEvent === false && gotIdentity != null) {
-            var event = createEvent("IdentityAuthenticated", "Authenticated", [gotIdentity.authentication.publicKey]);
-            parent.onEvent(event);
-            identityAuthenticatedEvent = true
-          }
-        })
+  setInterval(async function () {
+    if (window.currentlyAuthenticatedIdentity) {
+      const { authentication } = window.currentlyAuthenticatedIdentity;
+      const pinCode = getPincode(authentication.publicKey);
+      if (pinCode) {
+        const identity = await getIdentityFromLocalStorage(authentication.publicKey, pinCode, false);
+        window.currentlyAuthenticatedIdentity = identity;
+        window.currentlyLoadedIdentity = identity;
+
+        if (!identityAuthenticatedEvent && identity) {
+          const event = createEvent("IdentityAuthenticated", "Authenticated", [identity.authentication.publicKey]);
+          parent.onEvent(event);
+          identityAuthenticatedEvent = true;
+        }
       } else {
         const authenticationPublicKey = localStorage.getItem("authenticatedIdentity");
 
-        if(authenticationPublicKey != null && authenticationPublicKey !== "") {
-          loadIdentityInternal(authenticationPublicKey, "00000000").then(result => {
-            if(result.code !== "200") {
-              var event = createEvent("CanNotGetPincodeForAuthenticatedIdentity", "IdentityNotLoaded", [authenticationPublicKey]);
-              parent.onEvent(event);
-              clearPinCodeTtl(authenticationPublicKey);
-              window.currentlyAuthenticatedIdentity = null;
-            }
-          });
+        if (authenticationPublicKey) {
+          const result = await loadIdentityInternal(authenticationPublicKey, "00000000");
+          if (result.code !== "200") {
+            const event = createEvent("CanNotGetPincodeForAuthenticatedIdentity", "IdentityNotLoaded", [authenticationPublicKey]);
+            parent.onEvent(event);
+            clearPinCodeTtl(authenticationPublicKey);
+            window.currentlyAuthenticatedIdentity = null;
+          }
         }
 
         identityAuthenticatedEvent = false;
@@ -2324,32 +2323,26 @@ connection.promise.then(parent => {
       }
     }
 
-    if(window.currentlyLoadedIdentity != null) {
-      var pinCode = getPincode(window.currentlyLoadedIdentity.authentication.publicKey);
-      if(pinCode === "" || pinCode == null) {
-        if(identityLoadedEvent === false) {
-          /*var event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [window.currentlyLoadedIdentity.authentication.publicKey])
-          parent.onEvent(event)
-          identityLoadedEvent = true*/
-          loadIdentityInternal(window.currentlyLoadedIdentity.authentication.publicKey, "00000000").then(result => {
-            if(result.code !== "200") {
-              var event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [window.currentlyLoadedIdentity.authentication.publicKey]);
-              parent.onEvent(event);
-              identityLoadedEvent = true
-            }
-          });
+    if (window.currentlyLoadedIdentity) {
+      const pinCode = getPincode(window.currentlyLoadedIdentity.authentication.publicKey);
+      if (!pinCode) {
+        if (!identityLoadedEvent) {
+          const result = await loadIdentityInternal(window.currentlyLoadedIdentity.authentication.publicKey, "00000000");
+          if (result.code !== "200") {
+            const event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [window.currentlyLoadedIdentity.authentication.publicKey]);
+            parent.onEvent(event);
+            identityLoadedEvent = true;
+          }
         }
       } else {
-        identityLoadedEvent = false
+        identityLoadedEvent = false;
       }
     }
 
-
-    if (window.currentlyAuthenticatedIdentity != null) {
-      var now = new Date().getTime();
-      if(now - window.lastTimeGetProfile > 30000) {
-        var identityToStore = window.currentlyAuthenticatedIdentity;
-        getProfileData(identityToStore);
+    if (window.currentlyAuthenticatedIdentity) {
+      const now = new Date().getTime();
+      if (now - window.lastTimeGetProfile > 30000) {
+        getProfileData(window.currentlyAuthenticatedIdentity);
         window.lastTimeGetProfile = now;
       }
     }
-- 
GitLab