handleHandshakeMsg only responsible for saving public info of processes
This commit is contained in:
parent
4225f41ca0
commit
a380ee4f29
@ -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,44 +1207,16 @@ 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);
|
||||
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 {
|
||||
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);
|
||||
console.log(`${processId} already in db`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
this.sdkClient.request_data(processId, stateIds, managers);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
await this.updateProcessesFromRelay(newProcesses);
|
||||
}
|
||||
}, 500)
|
||||
} catch (e) {
|
||||
console.error('Failed to parse init message:', e);
|
||||
|
Loading…
x
Reference in New Issue
Block a user