diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 99cb8de5a12b5155158ab9f7da8e892914312a0e..f9f43a481f8c9f7367ffe517c1160f03724a6fbc 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -1571,8 +1571,9 @@ function getCertificateForPassport(passportUUID, internal) { const connection = Penpal.connectToParent({ // Methods child is exposing to parent methods: { - initializeApiHost: (apiUrl) => { + initialize: (apiUrl, wopiPrefix) => { window.API_HOST = apiUrl.charAt(apiUrl.length - 1) === "/" ? apiUrl : apiUrl + "/"; + window.WOPI_URI_PREFIX = wopiPrefix; }, createIdentity(pinCode) { return new Penpal.Promise(result => { diff --git a/javascript/src/iframe/wopiapi-iframe.js b/javascript/src/iframe/wopiapi-iframe.js index aefb502142b2209ff24a0aae9f3eaef1031a6fe0..faea944b5ca8aa4bc8a939a3c27f9fac7b3eed2a 100644 --- a/javascript/src/iframe/wopiapi-iframe.js +++ b/javascript/src/iframe/wopiapi-iframe.js @@ -3,14 +3,14 @@ const axios = require('axios'); function WopiAPI() {} WopiAPI.prototype.getPassports = function (fileID) { - const [protocol, host] = window.API_HOST.split(':'); - let url = `${protocol}:${host}${window.WOPI_URI_PREFIX}`; + const url = new URL(window.API_HOST); + let wopiURL = `${url.origin}/${window.WOPI_URI_PREFIX}`; - url = url.charAt(url.length - 1) === "/" ? url : url + "/"; - url += 'getPassports'; + wopiURL = wopiURL.charAt(wopiURL.length - 1) === "/" ? wopiURL : wopiURL + "/"; + wopiURL += 'getPassports'; const requestConfig = { - url, + url: wopiURL, method: 'POST', headers: { publicKey: window.viamApi.getConfig().headers.publicKey, diff --git a/javascript/src/viamapi-client.js b/javascript/src/viamapi-client.js index 96026f20b6506d72a5c6423b97e87586a6798481..e601c689ace0e9deca1d677e0ef2df98774eefd3 100644 --- a/javascript/src/viamapi-client.js +++ b/javascript/src/viamapi-client.js @@ -6,9 +6,10 @@ const Penpal = require('penpal').default; * @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 + * @param wopiPrefix - WOPI URI prefix * @returns {*} */ -function setupViamAPI(divId, methods, iframeUrl, apiUrl) { +function setupViamAPI(divId, methods, iframeUrl, apiUrl, wopiPrefix = 'wopi') { if (!apiUrl) { apiUrl = `${window.location.origin}/api/`; console.warn(`API host URL not specified. Fall back to ${apiUrl}`); // eslint-disable-line no-console @@ -29,7 +30,7 @@ function setupViamAPI(divId, methods, iframeUrl, apiUrl) { }); return connection.promise - .then((child) => child.initializeApiHost(apiUrl).then(() => child)); + .then((child) => child.initialize(apiUrl, wopiPrefix).then(() => child)); } window.setupViamAPI = setupViamAPI; diff --git a/main.go b/main.go index cc9cd0802f88ab2b59a16d44163e13966f40afd5..09618e9b28fb5810bf1e1470bbd25ec01cee124e 100644 --- a/main.go +++ b/main.go @@ -56,8 +56,7 @@ func buildViamAPI() string { prefixes := []string{} endPoints := server.GetEndPoints(prefixes) - result := "const axios = require('axios');\n" + - "window.WOPI_URI_PREFIX=\"" + server.GetWopiURIPrefix() + "\";\n\n" + result := "const axios = require('axios');\n" var keys []string for k := range endPoints {