From b4ed9e420c8b5db5041e0f7ff9bde2a2e5ce72c2 Mon Sep 17 00:00:00 2001
From: Markin Igor <markin.io210@gmail.com>
Date: Tue, 18 Dec 2018 16:56:20 +0300
Subject: [PATCH] Fix prefix.

---
 javascript/src/iframe/viamapi-iframe.js |  3 ++-
 javascript/src/iframe/wopiapi-iframe.js | 10 +++++-----
 javascript/src/viamapi-client.js        |  5 +++--
 main.go                                 |  3 +--
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index 99cb8de..f9f43a4 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 aefb502..faea944 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 96026f2..e601c68 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 cc9cd08..09618e9 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 {
-- 
GitLab