const axios = require("axios"); function WopiAPI() {} WopiAPI.prototype.getPassportsNewProtocol = function(resourceID, contentType) { const { publicKey, uuid, token, deviceHash } = window.viamApi.getConfig().headers; const requestConfig = { url: `${window.WOPI_URL}getPassportsNewProtocol`, method: "POST", headers: { publicKey, uuid, token, deviceHash, resourceID: encodeURI(resourceID), contentType: encodeURI(contentType) } }; return axios(requestConfig); }; WopiAPI.prototype.getPassports = function(fileID) { const { publicKey, uuid, token, deviceHash } = window.viamApi.getConfig().headers; const requestConfig = { url: `${window.WOPI_URL}getPassports`, method: "POST", headers: { publicKey, uuid, token, deviceHash, fileID: encodeURI(fileID) } }; return axios(requestConfig); }; // contentType is optional. // When not specified, function returns token, which can write multiple files and only read the last one. // When specified, function returns read-write token for the specified contentType. WopiAPI.prototype.getAccessToken = function(passportUUID, resourceID, contentType = "") { const { publicKey, uuid, token, deviceHash } = window.viamApi.getConfig().headers; if (!contentType) { contentType = ""; } const requestConfig = { url: `${window.WOPI_URL}getAccessToken`, method: "POST", headers: { publicKey, uuid, token, deviceHash, passportUUID: encodeURI(passportUUID), resourceID: encodeURI(resourceID), contentType: encodeURI(contentType) } }; return axios(requestConfig); } WopiAPI.prototype.putDocument = function(resourceID, accessToken, file) { const { publicKey, uuid, token, deviceHash } = window.viamApi.getConfig().headers; resourceID = encodeURI(resourceID); const requestConfig = { url: `${window.WOPI_URL}files/${resourceID}/contents`, method: "POST", headers: { publicKey, uuid, token, deviceHash }, params: { access_token: accessToken }, data: file }; return axios(requestConfig); }; module.exports = WopiAPI;