From 68f6b31a6c573fcbc4addef9f5aae2b11096b25f Mon Sep 17 00:00:00 2001 From: Sosthene Date: Tue, 24 Jun 2025 15:53:26 +0200 Subject: [PATCH] Add getPublicData --- src/sdk/MessageBus.ts | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/sdk/MessageBus.ts b/src/sdk/MessageBus.ts index ee9f072..043f337 100644 --- a/src/sdk/MessageBus.ts +++ b/src/sdk/MessageBus.ts @@ -301,6 +301,42 @@ export default class MessageBus { }); } + public getPublicData(encodedData: number[]): Promise { + return new Promise((resolve: (data: any) => void, reject: (error: string) => void) => { + this.checkToken().then(() => { + const userStore = UserStore.getInstance(); + const accessToken = userStore.getAccessToken()!; + + const correlationId = uuidv4(); + this.initMessageListener(correlationId); + + const unsubscribe = EventBus.getInstance().on('PUBLIC_DATA_DECODED', (responseId: string, data: any) => { + if (responseId !== correlationId) { + return; + } + unsubscribe(); + this.destroyMessageListener(); + resolve(data); + }); + + const unsubscribeError = EventBus.getInstance().on('ERROR_PUBLIC_DATA_DECODED', (responseId: string, error: string) => { + if (responseId !== correlationId) { + return; + } + unsubscribeError(); + this.destroyMessageListener(); + reject(error); + }); + + this.sendMessage({ + type: 'DECODE_PUBLIC_DATA', + encodedData, + accessToken + }); + }).catch(console.error); + }); + } + public createProfile(profileData: ProfileData, profilePrivateData: string[], roles: Record): Promise { return new Promise((resolve: (profileCreated: ProfileCreated) => void, reject: (error: string) => void) => { this.checkToken().then(() => { @@ -692,6 +728,17 @@ export default class MessageBus { EventBus.getInstance().emit('MESSAGE_RECEIVED', message); EventBus.getInstance().emit('PROCESS_UPDATED', correlationId, message.updatedProcess); break; + + case 'PUBLIC_DATA_DECODED': + if (this.errors[correlationId]) { + const error = this.errors[correlationId]; + delete this.errors[correlationId]; + EventBus.getInstance().emit('ERROR_PUBLIC_DATA_DECODED', correlationId, error); + return; + } + EventBus.getInstance().emit('MESSAGE_RECEIVED', message); + EventBus.getInstance().emit('PUBLIC_DATA_DECODED', correlationId, message.decodedData); + break; case 'ERROR': console.error('Error:', message);