From e76b002a88602641072e0e91c60b59e1b24d82b3 Mon Sep 17 00:00:00 2001
From: Markin Igor <markin.io210@gmail.com>
Date: Fri, 8 Feb 2019 17:27:19 +0300
Subject: [PATCH] refactor logout

---
 javascript/src/iframe/viamapi-iframe.js | 51 ++++++++++++-------------
 1 file changed, 24 insertions(+), 27 deletions(-)

diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index d148247..291ef3c 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -1842,38 +1842,35 @@ const connection = Penpal.connectToParent({
         });
       });
     },
-    logout() {
+    logout: async () => {
       const authenticationPublicKey = localStorage.getItem("authenticatedIdentity");
-      if (authenticationPublicKey === null) {
-        return {"data" : "",
-          "code" : "400",
-          "status" : "Identity not loaded"
-        }
-      }
-      if (window.loadedIdentities[authenticationPublicKey] === null) {
-        return {"data" : "",
-          "code" : "400",
-          "status" : "Identity not loaded"
-        }
+      if (!authenticationPublicKey || !window.loadedIdentities[authenticationPublicKey]) {
+        return {
+          data: "",
+          code: "400",
+          status: "Identity not loaded"
+        };
       }
 
-      return new Penpal.Promise(result => {
-        executeRestfulFunction("private", viamApi, viamApi.identityLogout).then(executeResult => {
-          viamApi.setIdentity("");
-          viamApi.setSessionData("", "");
-          clearPinCodeTtl(authenticationPublicKey);
+      const identityLogoutResponse = await executeRestfulFunction(
+        "private",
+        window.viamApi,
+        window.viamApi.identityLogout
+      );
 
-          localStorage.removeItem("uuid");
-          localStorage.removeItem("token");
-          localStorage.removeItem("authenticatedIdentity");
-          delete window.loadedIdentities[authenticationPublicKey];
-          window.currentlyLoadedIdentity = null;
-          window.currentlyAuthenticatedIdentity = null;
-          window.lastTimeGetProfile = 0;
+      window.viamApi.setIdentity("");
+      window.viamApi.setSessionData("", "");
+      clearPinCodeTtl(authenticationPublicKey);
 
-          result(executeResult);
-        });
-      });
+      localStorage.removeItem("uuid");
+      localStorage.removeItem("token");
+      localStorage.removeItem("authenticatedIdentity");
+      delete window.loadedIdentities[authenticationPublicKey];
+      window.currentlyLoadedIdentity = null;
+      window.currentlyAuthenticatedIdentity = null;
+      window.lastTimeGetProfile = 0;
+
+      return identityLogoutResponse;
     },
     identityRestoreAccess(restoreAccessIdentity, identificator) {
       return new Penpal.Promise(result => {
-- 
GitLab