From d5669769d3596685a9f94749b50ae98f1d021e95 Mon Sep 17 00:00:00 2001 From: Pascal Date: Wed, 22 Jan 2025 01:18:43 +0100 Subject: [PATCH] find_adress_from_process --- src/pages/chat/chat.ts | 68 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts index 3f8ee12..f390616 100755 --- a/src/pages/chat/chat.ts +++ b/src/pages/chat/chat.ts @@ -7,7 +7,7 @@ declare global { } import { membersMock } from '../../mocks/mock-signature/membersMocks'; -import { ApiReturn, Device, Member, Process } from '../../../pkg/sdk_client'; +import { ApiReturn, Device, Member, Process, RoleDefinition } from '../../../pkg/sdk_client'; import { getCorrectDOM } from '../../utils/document.utils'; import chatStyle from '../../../public/style/chat.css?inline'; import { addressToEmoji } from '../../utils/sp-address.utils'; @@ -866,6 +866,70 @@ class ChatElement extends HTMLElement { }); } + //Load tous les processus où le sp_adress est impliqué et renvoie un tableau d'adresses de processus + private async getMyProcessId() { + const service = await Services.getInstance(); + const myAddresses = await service.getMemberFromDevice(); + if (!myAddresses) { + console.error('No paired member found'); + return; + } + this.processId = myAddresses[0]; + return this.processId; + + } + + //fonction qui renvoie les processus où le sp_adress est impliqué + private async getProcessesForMember() { + const processId = await this.getMyProcessId(); + if (!processId) return; + this.processId = processId; + console.log("Je suis le processId de la fonction getProcessesForMember:", this.processId); + + console.log('🎯 Loading all group list'); + const groupList = this.shadowRoot?.querySelector('#group-list'); + if (!groupList) { + console.error('❌ Group list element not found'); + return; + } + + + const processes = await this.getProcesses(); + console.log("Je suis les processes de la fonction getMyProcessId:", processes); + + + if (!processes || Object.keys(processes).length === 0) { + console.log('⚠️ No processes found'); + return; + } + + const processTab = []; + + for (const {key, value} of processes) { + const processName = await key; + console.log("Je suis l'id process de la boucle :" ,processName); + const roles = await value.states[0].encrypted_pcd.roles; + //Je récupère les roles de chaque processus + for (const [roleName, roleData] of Object.entries(roles)) { + console.log("Je suis le roleName de la boucle :" ,roleName); + const allMembers = (roleData as { members: { sp_addresses: string[] }[] }).members; + console.log("Je suis les members de la boucle :" ,allMembers); + //Je récupère les adresses des membres + for (const member of allMembers) { + for (const address of member.sp_addresses) { + console.log("Adresse SP trouvée:", address); + if (address === this.processId) { + processTab.push(processName); + } + } + } + } + } + console.log("Je suis le tableau des processus de la boucle :" ,processTab); + return processTab; + } + + // Load the group list from all processes public async loadAllGroupListFromMyProcess(): Promise { console.log('🎯 Loading all group list'); @@ -1200,9 +1264,9 @@ class ChatElement extends HTMLElement { this.loadGroupListFromAProcess(this.processId); } else { console.warn('⚠️ No process ID found. Loading default processes...'); - await this.loadAllProcesses(); await this.loadAllMembers(); + await this.getProcessesForMember(); }