From 75ef2d6693cca8a857ac66e1bffac6482bc7d619 Mon Sep 17 00:00:00 2001
From: Markin Igor <markin.io210@gmail.com>
Date: Thu, 8 Nov 2018 10:15:04 +0300
Subject: [PATCH] Rework libs to use API url argument

---
 javascript/src/viamapi-client.js | 21 ++++++++++++++++++---
 javascript/src/viamapi-iframe.js |  7 +++++--
 javascript/yarn.lock             |  6 ------
 3 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/javascript/src/viamapi-client.js b/javascript/src/viamapi-client.js
index 0a834db..69d1eb3 100644
--- a/javascript/src/viamapi-client.js
+++ b/javascript/src/viamapi-client.js
@@ -1,13 +1,28 @@
 const Penpal = require('penpal').default;
 
-function setupViamAPI(divId, methodsArg, url) {
+/**
+ * Sets up interaction with Vereign Restful API
+ * @param divId - target container to append iframe via Penpal
+ * @param methods - list of methods to be used in iframe
+ * @param iframeUrl - iframe URL to connect
+ * @param apiUrl -  API URL used to access API endpoints
+ * @returns {*}
+ */
+function setupViamAPI(divId, methods, iframeUrl, apiUrl) {
+	if (!apiUrl) {
+		return Promise.reject('API Host not specified.')
+	}
+
 	const connection = Penpal.connectToChild({
 	  // URL of page to load into iframe.
-	  url,
+	  url: iframeUrl,
 	  // Container to which the iframe should be appended.
 	  appendTo: document.getElementById(divId),
 	  // Methods parent is exposing to child
-	  methods: methodsArg
+	  methods: {
+	  	...methods,
+	  	getApiUrl: () => apiUrl
+      }
 	});
 
 	return connection.promise
diff --git a/javascript/src/viamapi-iframe.js b/javascript/src/viamapi-iframe.js
index 83c5ab2..4040365 100644
--- a/javascript/src/viamapi-iframe.js
+++ b/javascript/src/viamapi-iframe.js
@@ -2260,10 +2260,13 @@ const connection = Penpal.connectToParent({
   }
 });
 
-connection.promise.then(parent => {
+connection.promise.then(async parent => {
   var identities = localStorage.getItem("identities")
 
-  window.API_HOST = `${window.location.protocol}//${window.location.host}/`;
+  let apiUrl = await parent.getApiUrl();
+  apiUrl = apiUrl.charAt(apiUrl.length - 1) === "/" ? apiUrl : apiUrl + "/";
+
+  window.API_HOST = apiUrl;
 
   console.log("Library loaded at: " + new Date().toISOString())
 
diff --git a/javascript/yarn.lock b/javascript/yarn.lock
index f330bd1..fc5f1c6 100644
--- a/javascript/yarn.lock
+++ b/javascript/yarn.lock
@@ -1060,12 +1060,6 @@ clean-css@4.2.x:
   dependencies:
     source-map "~0.6.0"
 
-clean-webpack-plugin@^0.1.19:
-  version "0.1.19"
-  resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz#ceda8bb96b00fe168e9b080272960d20fdcadd6d"
-  dependencies:
-    rimraf "^2.6.1"
-
 cliui@^3.2.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
-- 
GitLab