Add requestDataFromPeers

This commit is contained in:
NicolasCantu 2025-02-13 10:19:44 +01:00
parent 091a8d4bd2
commit 9dda743ba0
2 changed files with 18 additions and 0 deletions

View File

@ -195,6 +195,7 @@ export class Database {
service.setNotifications(data.data);
} else if (data.type === 'TO_DOWNLOAD') {
// Download the missing data
let requestedStateId = [];
for (const hash of data.data) {
try {
const value = await service.fetchValueFromStorage(hash);
@ -205,6 +206,14 @@ export class Database {
} else {
// We first request the data from managers
console.log('Request data from managers of the process');
// get the diff from db
const diff = await service.getDiffByValue(hash);
const processId = diff.process_id;
const stateId = diff.state_id;
if (!requestedStateId.includes(stateId)) {
await service.requestDataFromPeers(processId, stateId);
requestedStateId.push(stateId);
}
}
} catch (e) {
console.error(e);

View File

@ -1299,4 +1299,13 @@ export default class Services {
console.error("Failed to get processes:", e);
}
}
public async requestDataFromPeers(processId: string, stateId: string) {
try {
const res = this.sdkClient.request_data(processId, [stateId]);
await this.handleApiReturn(res);
} catch (e) {
console.error(e);
}
}
}