From 3019a9ba8f0e93ed38c39521c6785b0b2027d5ef Mon Sep 17 00:00:00 2001 From: Zdravko Iliev <zdravko.iliev@vereign.com> Date: Tue, 24 Mar 2020 16:54:27 +0200 Subject: [PATCH] add new method for getting Vcard with QR --- javascript/src/iframe/viamapi-iframe.js | 70 +++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 944bf67..23d3a73 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -1758,6 +1758,76 @@ const connection = Penpal.connectToParent({ return encodeResponse("200", response.data, "Document created"); }, + getVcardWithQrCode: async (passportUUID, QRCodeContent = null) =>{ + //TODO: IMPLEMENT QR CODE backend method needed + const authenticationPublicKey = localStorage.getItem( + "authenticatedIdentity" + ); + + if ( + !authenticationPublicKey || + !window.loadedIdentities[authenticationPublicKey] || + !extendPinCodeTtl(authenticationPublicKey) + ) { + return encodeResponse("400", "", "Identity not authenticated"); + } + + let vCardImageData; + let vCardImageClaimValue; + + const vCardImageClaimName = "vCardImage"; + const defaultTagName = "notag"; + + const vCardClaimResponse = await executeRestfulFunction( + "private", + window.viamApi, + window.viamApi.entityGetClaim, + null, + vCardImageClaimName, + defaultTagName, + passportUUID + ); + + if (vCardClaimResponse.code === "200") { + vCardImageClaimValue = vCardClaimResponse.data; + } + + if ( + vCardImageClaimValue && + "state" in vCardImageClaimValue && + vCardImageClaimValue.state === "disabled" + ) { + //No image data if the user have disabled vCard for this profile. + vCardImageData = null; + + // vCardImageData = new ImageData({ + // contentType: "image/png", + // contentBase64: + // "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" //1x1px transparent pixel + // }); + } else { + const vCardImageResponse = await executeRestfulFunction( + "private", + window.viamApi, + window.viamApi.passportGetVCardImage, + null, + passportUUID + ); + + if (vCardImageResponse.code !== "200") { + return encodeResponse("400", "", vCardImageResponse.status); + } + vCardImageData = new ImageData(vCardImageResponse.data.Image); + if (vCardImageData.contentType !== "image/png") { + return encodeResponse( + "400", + "", + "Content type of vCard mmust be 'image/png'" + ); + } + } + return encodeResponse("200",vCardImageData, 'vCard got'); + }, documentPutDocument: async ( passportUUID, resourceid, -- GitLab