From ee4bd4b426e5de37425c2b11c7d16a76b447fc09 Mon Sep 17 00:00:00 2001 From: Damyan Mitev <damyan.mitev@vereign.com> Date: Thu, 8 Aug 2019 12:10:19 +0300 Subject: [PATCH] add wopiGetAccessToken to library --- javascript/src/iframe/viamapi-iframe.js | 39 ++++++++++++++++++++----- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index b4a3471..b8ca39f 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -1642,27 +1642,52 @@ const connection = Penpal.connectToParent({ title } }; - const executeResult = await executeRestfulFunction( + const createDocumentResult = await executeRestfulFunction( "private", window.viamApi, window.viamApi.documentCreateDocument, config ); - if (executeResult.code !== "200") return executeResult; - const resourceID = executeResult.data; - const accessTokenResponse = await wopiAPI.getAccessToken(passportUUID, resourceID) - if (accessTokenResponse.code !== "200") { - return accessTokenResponse; + if (createDocumentResult.code !== "200") { + return createDocumentResult; + } + + const resourceID = createDocumentResult.data; + + const accessTokenResponse = await wopiAPI.getAccessToken(passportUUID, resourceID); + + if (accessTokenResponse.data.code !== "200") { + return accessTokenResponse.data; } - const accessToken = accessTokenResponse.data; + + const accessToken = accessTokenResponse.data.data; + const result = { resourceID, accessToken }; + return encodeResponse("200", result, "ok"); }, + wopiGetAccessToken: async (passportUUID, resourceID, contentType) => { + const authenticationPublicKey = localStorage.getItem( + "authenticatedIdentity" + ); + + if ( + !authenticationPublicKey || + !window.loadedIdentities[authenticationPublicKey] || + !extendPinCodeTtl(authenticationPublicKey) + ) { + return encodeResponse("400", "", "Identity not authenticated"); + } + + const response = await wopiAPI.getAccessToken(passportUUID, resourceID, contentType); + return response.data; + }, + wopiPutFile: async (resourceID, accessToken, file) => { const authenticationPublicKey = localStorage.getItem( "authenticatedIdentity" -- GitLab