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 pairedAddresses: string[] = [];
|
||||||
private sdkClient: any;
|
private sdkClient: any;
|
||||||
// private processes: IProcess[] | null = null;
|
// private processes: IProcess[] | null = null;
|
||||||
private processes: Set = new Set();
|
|
||||||
private myProcesses: Set = new Set();
|
private myProcesses: Set = new Set();
|
||||||
private notifications: any[] | null = null;
|
private notifications: any[] | null = null;
|
||||||
private subscriptions: { element: Element; event: string; eventHandler: string }[] = [];
|
private subscriptions: { element: Element; event: string; eventHandler: string }[] = [];
|
||||||
@ -1190,18 +1189,15 @@ export default class Services {
|
|||||||
|
|
||||||
// Handle the handshake message
|
// Handle the handshake message
|
||||||
public async handleHandshakeMsg(url: string, parsedMsg: any) {
|
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 {
|
try {
|
||||||
const handshakeMsg: HandshakeMessage = JSON.parse(parsedMsg);
|
const handshakeMsg: HandshakeMessage = JSON.parse(parsedMsg);
|
||||||
this.updateRelay(url, handshakeMsg.sp_address);
|
this.updateRelay(url, handshakeMsg.sp_address);
|
||||||
const members = handshakeMsg.peers_list;
|
const members = handshakeMsg.peers_list;
|
||||||
if (this.membersList && Object.keys(this.membersList).length === 0) {
|
if (this.membersList && Object.keys(this.membersList).length === 0) {
|
||||||
|
// We start from an empty list, just copy it over
|
||||||
this.membersList = handshakeMsg.peers_list;
|
this.membersList = handshakeMsg.peers_list;
|
||||||
} else {
|
} else {
|
||||||
// console.log('Received members:');
|
// We are incrementing our list
|
||||||
// console.log(handshakeMsg.peers_list);
|
|
||||||
for (const [processId, member] of Object.entries(handshakeMsg.peers_list)) {
|
for (const [processId, member] of Object.entries(handshakeMsg.peers_list)) {
|
||||||
this.membersList[processId] = member as Member;
|
this.membersList[processId] = member as Member;
|
||||||
}
|
}
|
||||||
@ -1211,43 +1207,15 @@ export default class Services {
|
|||||||
const newProcesses = handshakeMsg.processes_list;
|
const newProcesses = handshakeMsg.processes_list;
|
||||||
if (newProcesses && Object.keys(newProcesses).length !== 0) {
|
if (newProcesses && Object.keys(newProcesses).length !== 0) {
|
||||||
for (const [processId, process] of Object.entries(newProcesses)) {
|
for (const [processId, process] of Object.entries(newProcesses)) {
|
||||||
// We check if we're part of the process
|
const existing = await this.getProcess(processId);
|
||||||
if (process.states.length < 2) continue;
|
if (!existing) {
|
||||||
let stateIds = [];
|
// We add it to db
|
||||||
let managers = new Set();
|
console.log(`Saving ${processId} to db`);
|
||||||
for (const state of process.states) {
|
await this.saveProcessToDb(processId, process as Process);
|
||||||
if (state.encrypted_pcd === null) continue;
|
} else {
|
||||||
const roles = state.encrypted_pcd['roles'];
|
console.log(`${processId} already in db`);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await this.updateProcessesFromRelay(newProcesses);
|
|
||||||
}
|
}
|
||||||
}, 500)
|
}, 500)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user