From 5bd3e4553c58c5d36d56248b0c85c9f30f0b9a58 Mon Sep 17 00:00:00 2001 From: Sosthene00 Date: Mon, 30 Dec 2024 15:54:59 +0100 Subject: [PATCH] Import Device from backup file --- src/components/header/header.ts | 4 +++- src/router.ts | 2 +- src/services/service.ts | 23 ++++++++++++++++++----- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/components/header/header.ts b/src/components/header/header.ts index 92881c3..e055f68 100755 --- a/src/components/header/header.ts +++ b/src/components/header/header.ts @@ -2,6 +2,7 @@ import ModalService from '~/services/modal.service'; import { INotification } from '../../models/notification.model'; import { currentRoute, navigate } from '../../router'; import Services from '../../services/service'; +import { BackUp } from '~/models/backup.model'; let notifications = []; @@ -135,10 +136,11 @@ async function importJSON() { const reader = new FileReader(); reader.onload = async (e) => { try { - const content = JSON.parse(e.target?.result as string); + const content: BackUp = JSON.parse(e.target?.result as string); const service = await Services.getInstance(); await service.importJSON(content); alert('Import réussi'); + window.location.reload(); } catch (error) { alert("Erreur lors de l'import: " + error); } diff --git a/src/router.ts b/src/router.ts index baa8682..dfafa6d 100755 --- a/src/router.ts +++ b/src/router.ts @@ -141,7 +141,7 @@ export async function init(): Promise { if (!device) { device = await services.createNewDevice(); } else { - await services.restoreDevice(device); + services.restoreDevice(device); } await services.restoreProcesses(); await services.restoreSecrets(); diff --git a/src/services/service.ts b/src/services/service.ts index 023f8c3..b54ea87 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -277,7 +277,11 @@ export default class Services { } async resetDevice() { - await this.sdkClient.reset_device(); + this.sdkClient.reset_device(); + + // Remove the device from db + const db = await Database.getInstance(); + await db.deleteObject('wallet', '1'); } async sendNewTxMessage(message: string) { @@ -548,9 +552,9 @@ export default class Services { return spAddress; } - async restoreDevice(device: string) { + restoreDevice(device: string) { try { - await this.sdkClient.restore_device(device); + this.sdkClient.restore_device(device); const spAddress = this.sdkClient.get_address(); } catch (e) { console.error(e); @@ -685,8 +689,17 @@ export default class Services { this.notifications = notifications; } - async importJSON(content: any): Promise { - return Promise.resolve(); + async importJSON(backup: BackUp): Promise { + const device = JSON.stringify(backup.device); + + // Reset current device + await this.resetDevice(); + + await this.saveDeviceInDatabase(device); + + this.restoreDevice(device); + + // TODO restore secrets and processes from file } public async createBackUp(): Promise {