From ce972e7e45664d6ffd7524e3ada5500625bb0ba5 Mon Sep 17 00:00:00 2001
From: Damyan Mitev <damyan.mitev@vereign.com>
Date: Tue, 28 May 2019 11:07:24 +0300
Subject: [PATCH] implement WopiAPI.createDocument

---
 javascript/src/iframe/wopiapi-iframe.js | 27 +++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/javascript/src/iframe/wopiapi-iframe.js b/javascript/src/iframe/wopiapi-iframe.js
index 6e7794e..542042c 100644
--- a/javascript/src/iframe/wopiapi-iframe.js
+++ b/javascript/src/iframe/wopiapi-iframe.js
@@ -1,3 +1,5 @@
+import {encodeResponse} from "../utilities/appUtility";
+
 const axios = require('axios');
 
 function WopiAPI() {}
@@ -20,6 +22,31 @@ WopiAPI.prototype.getPassports = function (resourceID, contentType) {
   return axios(requestConfig);
 };
 
+WopiAPI.prototype.createDocument = async (passportUUID, path, contentType, title) => {
+  const authenticationPublicKey = localStorage.getItem("authenticatedIdentity");
+  if (
+    !authenticationPublicKey ||
+    !window.loadedIdentities[authenticationPublicKey] ||
+    !extendPinCodeTtl(authenticationPublicKey)
+  ) {
+    return encodeResponse("400", "", "Identity not authenticated");
+  }
+
+  const config = {
+    headers: {
+      path,
+      passportuuid: passportUUID,
+      contentType,
+      title
+    }
+  };
+  const response = await executeRestfulFunction("private", window.viamApi, window.viamApi.documentCreateDocument,
+    config);
+
+  const resourceID = response.data;
+  return await this.getPassports(resourceID, contentType);
+};
+
 WopiAPI.prototype.putDocument = function (resourceID, accessToken, file) {
   const { publicKey, uuid, token, deviceHash } = window.viamApi.getConfig().headers;
 
-- 
GitLab