Mv getProcessesData to service
This commit is contained in:
parent
8b11e0c80c
commit
7f9b4d82b5
@ -264,8 +264,6 @@ export class Service {
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get relay statistics from RelayManager.
|
* Get relay statistics from RelayManager.
|
||||||
* @returns Statistics about connected relays
|
* @returns Statistics about connected relays
|
||||||
@ -703,6 +701,48 @@ export class Service {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getProcessesData(filteredProcesses: Record<string, Process>): Promise<Record<string, any>> {
|
||||||
|
const data: Record<string, any> = {};
|
||||||
|
// Now we decrypt all we can in the processes
|
||||||
|
for (const [processId, process] of Object.entries(filteredProcesses)) {
|
||||||
|
console.log('process roles:', this.getRoles(process));
|
||||||
|
// We also take the public data
|
||||||
|
const lastState = this.getLastCommitedState(process);
|
||||||
|
if (!lastState) {
|
||||||
|
console.error(`❌ Process ${processId} doesn't have a commited state`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const processData: Record<string, any> = {};
|
||||||
|
for (const attribute of Object.keys(lastState.public_data)) {
|
||||||
|
try {
|
||||||
|
const value = this.decodeValue(lastState.public_data[attribute]);
|
||||||
|
if (value) {
|
||||||
|
processData[attribute] = value;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`❌ Error decoding public data ${attribute} for process ${processId}:`, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (let i = process.states.length - 2; i >= 0; i--) {
|
||||||
|
const state = process.states[i];
|
||||||
|
for (const attribute of Object.keys(state.keys)) {
|
||||||
|
if (processData[attribute] !== undefined && processData[attribute] !== null) continue;
|
||||||
|
try {
|
||||||
|
const value = await this.decryptAttribute(processId, state, attribute);
|
||||||
|
if (value) {
|
||||||
|
processData[attribute] = value;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`❌ Error decrypting attribute ${attribute} for process ${processId}:`, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data[processId] = processData;
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
// Utility method: Get Process
|
// Utility method: Get Process
|
||||||
async getProcess(processId: string): Promise<any | null> {
|
async getProcess(processId: string): Promise<any | null> {
|
||||||
// First check in-memory cache
|
// First check in-memory cache
|
||||||
|
@ -279,42 +279,7 @@ class SimpleProcessHandlers {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const data: Record<string, any> = {};
|
const data = await this.service.getProcessesData(filteredProcesses);
|
||||||
// Now we decrypt all we can in the processes
|
|
||||||
for (const [processId, process] of Object.entries(filteredProcesses)) {
|
|
||||||
// We also take the public data
|
|
||||||
const lastState = this.service.getLastCommitedState(process);
|
|
||||||
if (!lastState) {
|
|
||||||
console.error(`❌ Process ${processId} doesn't have a commited state`);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
const processData: Record<string, any> = {};
|
|
||||||
for (const attribute of Object.keys(lastState.public_data)) {
|
|
||||||
try {
|
|
||||||
const value = this.service.decodeValue(lastState.public_data[attribute]);
|
|
||||||
if (value) {
|
|
||||||
processData[attribute] = value;
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.error(`❌ Error decoding public data ${attribute} for process ${processId}:`, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (let i = process.states.length - 2; i >= 0; i--) {
|
|
||||||
const state = process.states[i];
|
|
||||||
for (const attribute of Object.keys(state.keys)) {
|
|
||||||
if (processData[attribute] !== undefined && processData[attribute] !== null) continue;
|
|
||||||
try {
|
|
||||||
const value = await this.service.decryptAttribute(processId, state, attribute);
|
|
||||||
if (value) {
|
|
||||||
processData[attribute] = value;
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.error(`❌ Error decrypting attribute ${attribute} for process ${processId}:`, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
data[processId] = processData;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
type: MessageType.PROCESSES_RETRIEVED,
|
type: MessageType.PROCESSES_RETRIEVED,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user