diff --git a/javascript/src/viamapi-client.js b/javascript/src/viamapi-client.js index 0a834db07981eac7ab7ae7a71608a559c5e31aff..69d1eb3b9481ba07014bca7a4132ae6e7301ba34 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 83c5ab21672b91864738304c16bdbd097025deac..40403654ba875b4f3dde98160d3745e7fb1a1b8d 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 f330bd1dc1fa982d04b5efdfd30e36449d472ca9..fc5f1c6a496b013a6b91d37bfa1978b037272145 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"