Import Device from backup file

This commit is contained in:
Sosthene00 2024-12-30 15:54:59 +01:00
parent bb70f092d5
commit 5bd3e4553c
3 changed files with 22 additions and 7 deletions

View File

@ -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);
}

View File

@ -141,7 +141,7 @@ export async function init(): Promise<void> {
if (!device) {
device = await services.createNewDevice();
} else {
await services.restoreDevice(device);
services.restoreDevice(device);
}
await services.restoreProcesses();
await services.restoreSecrets();

View File

@ -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<void> {
return Promise.resolve();
async importJSON(backup: BackUp): Promise<void> {
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<BackUp | null> {