From 964509a99dadde254ae3dc2deef8ebcf121e6cd5 Mon Sep 17 00:00:00 2001
From: Markin Igor <markin.io210@gmail.com>
Date: Wed, 12 Dec 2018 17:17:52 +0300
Subject: [PATCH] Reuse handleIdentityLogin across the iframe.

---
 javascript/src/iframe/viamapi-iframe.js | 56 +++++++------------------
 1 file changed, 14 insertions(+), 42 deletions(-)

diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index 779e33b..e52d6aa 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -1355,8 +1355,8 @@ const handleIdentityLogin = (identity, uuid, token) => {
   localStorage.setItem("token", token);
   localStorage.setItem("authenticatedIdentity", identity.authentication.publicKey);
   window.currentlyAuthenticatedIdentity = loadedIdentities[identity.authentication.publicKey];
-  setKeyForUUID(uuid, identity.authentication.publicKey);
   window.lastTimeGetProfile = 0;
+  setKeyForUUID(uuid, identity.authentication.publicKey);
 };
 
 function executeRestfulFunction(type, that, fn, ...args) {
@@ -1727,47 +1727,28 @@ const connection = Penpal.connectToParent({
         executeRestfulFunction("public", viamApi, viamApi.identityLogin, mode, code, actionID).then(executeResult => {
           // console.log(executeResult)
           //console.log(mode)
-          switch(mode) {
+          switch (mode) {
             case "sms" : {
               if (executeResult.code === "200") {
-                //console.log("In if")
-                var uuid = executeResult.data["Uuid"];
-                var token = executeResult.data["Session"];
-                viamApi.setSessionData(uuid, token);
-                localStorage.setItem("uuid", uuid);
-                localStorage.setItem("token", token);
-                localStorage.setItem("authenticatedIdentity",
-                  loginIdentity.authentication.publicKey);
-                setKeyForUUID(uuid, loginIdentity.authentication.publicKey);
-                currentlyAuthenticatedIdentity = loadedIdentities[loginIdentity.authentication.publicKey];
-                lastTimeGetProfile = 0;
+                const uuid = executeResult.data["Uuid"];
+                const token = executeResult.data["Session"];
+                handleIdentityLogin(loginIdentity, uuid, token);
                 delete executeResult.data["Uuid"];
                 delete executeResult.data["Session"];
                 getProfileData(loginIdentity).then(executeResult1 => {
                   result(executeResult);
                 });
               } else {
-                //console.log("In else")
                 result(executeResult);
               }
 
               break;
             }
-
             case "previousaddeddevice" : {
               if (executeResult.code === "200") {
-                //console.log(response.data.data)
-                var uuid = executeResult.data["Uuid"];
-                var token = executeResult.data["Session"];
-                //console.log(uuid + " " + token)
-                viamApi.setSessionData(uuid, token);
-                localStorage.setItem("uuid", uuid);
-                localStorage.setItem("token", token);
-                localStorage.setItem("authenticatedIdentity",
-                  loginIdentity.authentication.publicKey);
-                setKeyForUUID(uuid, loginIdentity.authentication.publicKey);
-                currentlyAuthenticatedIdentity = loadedIdentities[loginIdentity.authentication.publicKey];
-                lastTimeGetProfile = 0;
+                const uuid = executeResult.data["Uuid"];
+                const token = executeResult.data["Session"];
+                handleIdentityLogin(loginIdentity, uuid, token);
                 delete executeResult.data["Uuid"];
                 delete executeResult.data["Session"];
                 getProfileData(loginIdentity).then(executeResult1 => {
@@ -2421,25 +2402,16 @@ connection.promise.then(parent => {
         if(executeResult.code === "200") {
           var eventsLen = executeResult.data.length;
           changedMaxDeviceKeyAnonymousEventTime = false;
-          for(var i = 0; i < eventsLen; i++) {
+          for (var i = 0; i < eventsLen; i++) {
             var event = executeResult.data[i];
             //console.log("Received event anynomous: " + event)
-            switch(event.type) {
+            switch (event.type) {
               case "Authenticated" : {
                 console.log("Sending authenticated event");
-                var uuid = event.payloads[0];
-                var token = event.payloads[1];
-                viamApi.setSessionData(uuid, token);
-                localStorage.setItem("uuid", uuid);
-                localStorage.setItem("token", token);
-                localStorage.setItem("authenticatedIdentity",
-                  currentlyLoadedIdentity.authentication.publicKey);
-                setKeyForUUID(uuid, currentlyLoadedIdentity.authentication.publicKey);
-
-                currentlyAuthenticatedIdentity = currentlyLoadedIdentity;
-                lastTimeGetProfile = 0;
-
-                var identityToStore = currentlyAuthenticatedIdentity;
+                const uuid = event.payloads[0];
+                const token = event.payloads[1];
+                handleIdentityLogin(currentlyLoadedIdentity, uuid, token);
+                const identityToStore = currentlyAuthenticatedIdentity;
                 event.payloads = [{fromQRCode: true}];
                 console.log(identityToStore);
                 setIdentityInLocalStorage(identityToStore).then(() => {
-- 
GitLab