diff --git a/src/sdk/MessageBus.ts b/src/sdk/MessageBus.ts index aeb6316f..39d219a9 100644 --- a/src/sdk/MessageBus.ts +++ b/src/sdk/MessageBus.ts @@ -644,6 +644,39 @@ export default class MessageBus { }); } + public exportBackupFile(): Promise { + return new Promise((resolve: (backupFile: any) => void, reject: (error: string) => void) => { + this.checkToken().then(() => { + const messageId = `EXPORT_BACKUP_${uuidv4()}`; + + const unsubscribe = EventBus.getInstance().on('BACKUP_RETRIEVED', (responseId: string, backupFile: any) => { + if (responseId !== messageId) { + return; + } + unsubscribe(); + resolve(backupFile); + }); + + const unsubscribeError = EventBus.getInstance().on('ERROR_BACKUP_RETRIEVED', (responseId: string, error: string) => { + if (responseId !== messageId) { + return; + } + unsubscribeError(); + reject(error); + }); + + const user = User.getInstance(); + const accessToken = user.getAccessToken()!; + + this.sendMessage({ + type: 'EXPORT_BACKUP', + accessToken, + messageId + }); + }).catch(reject); + }); + } + public verifyMerkleProof(merkleProof: string, documentHash: string): Promise { return new Promise((resolve: (isValid: boolean) => void, reject: (error: string) => void) => { this.checkToken().then(() => {