Utilisation de create_user, suppression du bouchon processstore
This commit is contained in:
parent
19eb1b66ab
commit
09709869b2
@ -1,7 +1,6 @@
|
||||
import { generate_sp_wallet_return, User } from '../dist/pkg/sdk_client';
|
||||
import IndexedDB from './database'
|
||||
import Processstore from './store/processstore';
|
||||
import Userstore from './store/userstore';
|
||||
|
||||
class Services {
|
||||
private static instance: Services;
|
||||
@ -52,7 +51,7 @@ class Services {
|
||||
public async isNewUser(): Promise<boolean> {
|
||||
let isNew = false;
|
||||
try {
|
||||
let listUserProcess = await Services.instance.getAllUserProces();
|
||||
let listUserProcess = await Services.instance.getAllUserProcess();
|
||||
if (listUserProcess.length == 0) {
|
||||
isNew = true;
|
||||
}
|
||||
@ -66,7 +65,7 @@ class Services {
|
||||
Services.instance.injectHtml(Services.instance.get_html_create_id());
|
||||
Services.instance.attachSubmitListener("form4nk", Services.instance.createId);
|
||||
Services.instance.attachClickListener("displayrecover", Services.instance.displayRecover);
|
||||
Services.instance.displayProcess(await Services.instance.getAllProcesAvailable());
|
||||
Services.instance.displayProcess(await Services.instance.getAllProcessAvailable());
|
||||
}
|
||||
|
||||
public get_html_create_id(): string {
|
||||
@ -90,36 +89,50 @@ class Services {
|
||||
// To comment if test
|
||||
if (!Services.instance.isPasswordValid(password)) return;
|
||||
|
||||
// TODO get secretpart1 from User object
|
||||
// const user: User = new this.sdkClient.create_user(password);
|
||||
const user: User = this.sdkClient.create_user(password);
|
||||
// let secretpart1 = "LKHGKJJJ3H";
|
||||
const image_to_recover = Services.instance.getImage("assets/4nk_image.jpeg");
|
||||
const image_to_revoke = Services.instance.getImage("assets/revoke.jpeg");
|
||||
let label = null;
|
||||
let birthday = 50000;
|
||||
const user: User = this.sdkClient.create_user(password, image_to_recover, image_to_revoke, label, birthday);
|
||||
|
||||
try {
|
||||
let userstore = new Userstore;
|
||||
userstore.process = process;
|
||||
const indexedDb = await IndexedDB.getInstance();
|
||||
const db = indexedDb.getDb();
|
||||
|
||||
await indexedDb.writeObject(db, indexedDb.getStoreList().AnkUser, userstore, process);
|
||||
console.log("JS Userstore added");
|
||||
await indexedDb.writeObject(db, indexedDb.getStoreList().AnkUser, user, process);
|
||||
console.log("JS User added");
|
||||
|
||||
await indexedDb.writeObject(db, indexedDb.getStoreList().AnkSession, process, Services.CURRENT_PROCESS);
|
||||
console.log("JS Sessionstore added currentprocess");
|
||||
} catch (error) {
|
||||
console.error("Failed to write userstore object :", error);
|
||||
console.error("Failed to write user object :", error);
|
||||
}
|
||||
|
||||
await Services.instance.displayRevokeImage();
|
||||
}
|
||||
|
||||
private async getImage(imageUrl:string): Promise<Uint8Array|null> {
|
||||
let imageBytes = null;
|
||||
try {
|
||||
const response = await fetch(imageUrl);
|
||||
if (!response.ok) {
|
||||
throw new Error(`Failed to fetch image: ${response.status} ${response.statusText}`);
|
||||
}
|
||||
const arrayBuffer = await response.arrayBuffer();
|
||||
imageBytes = new Uint8Array(arrayBuffer);
|
||||
console.log(imageBytes);
|
||||
} catch (error) {
|
||||
console.error("Failed to get image : "+imageUrl, error);
|
||||
}
|
||||
return imageBytes;
|
||||
}
|
||||
|
||||
public async displayRecover(): Promise<void> {
|
||||
Services.instance.injectHtml(Services.instance.get_html_recover());
|
||||
Services.instance.attachSubmitListener("form4nk", Services.instance.recover);
|
||||
Services.instance.attachClickListener("displaycreateid", Services.instance.displayCreateId);
|
||||
Services.instance.attachClickListener("displayrevoke", Services.instance.displayRevoke);
|
||||
Services.instance.attachClickListener("submitButtonRevoke", Services.instance.revoke);
|
||||
Services.instance.displayProcess(await Services.instance.getAllUserProces());
|
||||
Services.instance.displayProcess(await Services.instance.getAllUserProcess());
|
||||
}
|
||||
|
||||
public get_html_recover(): string {
|
||||
@ -205,7 +218,7 @@ class Services {
|
||||
console.log("JS Processstore not exist ");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Failed to retrieve userstore object :", error);
|
||||
console.error("Failed to retrieve user object :", error);
|
||||
}
|
||||
|
||||
Services.instance.injectUpdateAnIdHtml(body, style, script, inputName);
|
||||
@ -260,31 +273,33 @@ class Services {
|
||||
}
|
||||
}
|
||||
|
||||
public async getAllUserProces(): Promise<string[]> {
|
||||
public async getAllUserProcess(): Promise<string[]> {
|
||||
let userProcessList: string[] = [];
|
||||
try {
|
||||
const indexedDB = await IndexedDB.getInstance();
|
||||
const db = indexedDB.getDb();
|
||||
let userListObject = await indexedDB.getAll<Userstore>(db, indexedDB.getStoreList().AnkUser);
|
||||
let userListObject = await indexedDB.getAll<User>(db, indexedDB.getStoreList().AnkUser);
|
||||
userListObject.forEach(async (userObject) => {
|
||||
const processName = userObject.process;
|
||||
// TODO get processname
|
||||
//const processName = userObject.process;
|
||||
const processName = "process1";
|
||||
userProcessList.push(processName);
|
||||
console.log("JS Userstore found");
|
||||
console.log("JS User found");
|
||||
})
|
||||
} catch (error) {
|
||||
console.log("JS Userstore not found");
|
||||
console.log("JS User not found");
|
||||
}
|
||||
return userProcessList;
|
||||
}
|
||||
|
||||
public async getAllProcesAvailable(): Promise<string[]> {
|
||||
let userProcessList = await Services.instance.getAllUserProces();
|
||||
let processList = await Services.instance.getAllProces();
|
||||
public async getAllProcessAvailable(): Promise<string[]> {
|
||||
let userProcessList = await Services.instance.getAllUserProcess();
|
||||
let processList = await Services.instance.getAllProcess();
|
||||
let availableProcessList = processList.filter(x => !userProcessList.includes(x));
|
||||
return availableProcessList;
|
||||
}
|
||||
|
||||
public async getAllProces(): Promise<string[]> {
|
||||
public async getAllProcess(): Promise<string[]> {
|
||||
// if indexedDB is empty, get list from wasm
|
||||
let processList: string[] = [];
|
||||
try {
|
||||
@ -319,25 +334,6 @@ class Services {
|
||||
return processList;
|
||||
}
|
||||
|
||||
private async getSecretPart1(process: string): Promise<string> {
|
||||
let secretpart1 = "";
|
||||
try {
|
||||
const indexedDB = await IndexedDB.getInstance();
|
||||
const db = indexedDB.getDb();
|
||||
try {
|
||||
let userObject = await indexedDB.getObject<Userstore>(db, indexedDB.getStoreList().AnkUser, process);
|
||||
secretpart1 = userObject.secretpart1;
|
||||
console.log("JS Userstore exist secretpart1 : "+secretpart1);
|
||||
} catch (error) {
|
||||
console.log("JS Userstore not exist ");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Failed to retrieve userstore object :", error);
|
||||
}
|
||||
console.log("JS secretpart1 : "+secretpart1);
|
||||
|
||||
return secretpart1;
|
||||
}
|
||||
|
||||
public attachClickListener(elementId: string, callback: (event: Event) => void): void {
|
||||
const element = document.getElementById(elementId);
|
||||
|
@ -1,15 +0,0 @@
|
||||
class Userstore {
|
||||
process: string;
|
||||
secretpart1: string;
|
||||
password: string;
|
||||
createDate: Date;
|
||||
|
||||
constructor() {
|
||||
this.process = "";
|
||||
this.secretpart1 = "";
|
||||
this.password = "";
|
||||
this.createDate = new Date;
|
||||
}
|
||||
}
|
||||
|
||||
export default Userstore;
|
Loading…
x
Reference in New Issue
Block a user