diff --git a/src/services/service.ts b/src/services/service.ts index 39821f4..31baac6 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -25,7 +25,6 @@ export default class Services { private pairedAddresses: string[] = []; private sdkClient: any; // private processes: IProcess[] | null = null; - private processes: Set = new Set(); private myProcesses: Set = new Set(); private notifications: any[] | null = null; private subscriptions: { element: Element; event: string; eventHandler: string }[] = []; @@ -1190,18 +1189,15 @@ export default class Services { // Handle the handshake message public async handleHandshakeMsg(url: string, parsedMsg: any) { - // Get the current user - const us = this.getMemberFromDevice(); - console.log("Je suis le us de la fonction handleHandshakeMsg:", us); try { const handshakeMsg: HandshakeMessage = JSON.parse(parsedMsg); this.updateRelay(url, handshakeMsg.sp_address); const members = handshakeMsg.peers_list; if (this.membersList && Object.keys(this.membersList).length === 0) { + // We start from an empty list, just copy it over this.membersList = handshakeMsg.peers_list; } else { - // console.log('Received members:'); - // console.log(handshakeMsg.peers_list); + // We are incrementing our list for (const [processId, member] of Object.entries(handshakeMsg.peers_list)) { this.membersList[processId] = member as Member; } @@ -1211,43 +1207,15 @@ export default class Services { const newProcesses = handshakeMsg.processes_list; if (newProcesses && Object.keys(newProcesses).length !== 0) { for (const [processId, process] of Object.entries(newProcesses)) { - // We check if we're part of the process - if (process.states.length < 2) continue; - let stateIds = []; - let managers = new Set(); - for (const state of process.states) { - if (state.encrypted_pcd === null) continue; - const roles = state.encrypted_pcd['roles']; - if (!roles) { - console.error('Can\'t find roles'); - continue; - } - - if (this.rolesContainsUs(roles)) { - // We add this state to the list to request - stateIds.push(state.state_id); - } else { - continue; - } - - // For now we just add everyone that is in the same role than us - // const sendTo = this.membersInSameRoleThanUs(roles); - for (const [_, role] of Object.entries(roles)) { - if (!role.members.includes(us)) continue; - for (const member of role.members) { - if (member !== us) { - managers.push(member); - } - } - } - } - try { - this.sdkClient.request_data(processId, stateIds, managers); - } catch (e) { - console.error(e); + const existing = await this.getProcess(processId); + if (!existing) { + // We add it to db + console.log(`Saving ${processId} to db`); + await this.saveProcessToDb(processId, process as Process); + } else { + console.log(`${processId} already in db`); } } - await this.updateProcessesFromRelay(newProcesses); } }, 500) } catch (e) {