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 { INotification } from '../../models/notification.model';
import { currentRoute, navigate } from '../../router'; import { currentRoute, navigate } from '../../router';
import Services from '../../services/service'; import Services from '../../services/service';
import { BackUp } from '~/models/backup.model';
let notifications = []; let notifications = [];
@ -135,10 +136,11 @@ async function importJSON() {
const reader = new FileReader(); const reader = new FileReader();
reader.onload = async (e) => { reader.onload = async (e) => {
try { 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(); const service = await Services.getInstance();
await service.importJSON(content); await service.importJSON(content);
alert('Import réussi'); alert('Import réussi');
window.location.reload();
} catch (error) { } catch (error) {
alert("Erreur lors de l'import: " + error); alert("Erreur lors de l'import: " + error);
} }

View File

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

View File

@ -277,7 +277,11 @@ export default class Services {
} }
async resetDevice() { 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) { async sendNewTxMessage(message: string) {
@ -548,9 +552,9 @@ export default class Services {
return spAddress; return spAddress;
} }
async restoreDevice(device: string) { restoreDevice(device: string) {
try { try {
await this.sdkClient.restore_device(device); this.sdkClient.restore_device(device);
const spAddress = this.sdkClient.get_address(); const spAddress = this.sdkClient.get_address();
} catch (e) { } catch (e) {
console.error(e); console.error(e);
@ -685,8 +689,17 @@ export default class Services {
this.notifications = notifications; this.notifications = notifications;
} }
async importJSON(content: any): Promise<void> { async importJSON(backup: BackUp): Promise<void> {
return Promise.resolve(); 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> { public async createBackUp(): Promise<BackUp | null> {