Add getMyProcesses logic

This commit is contained in:
Sosthene 2025-06-11 20:37:00 +02:00 committed by Sosthene
parent 74ae167e3c
commit 09e8530c6a
2 changed files with 57 additions and 17 deletions

View File

@ -23,6 +23,7 @@ function App() {
const [showAuthModal, setShowAuthModal] = useState(false)
const [showFolderModal, setShowFolderModal] = useState(false)
const [processes, setProcesses] = useState<any>(null)
const [myProcesses, setMyProcesses] = useState<string[]>([])
const [userPairingId, setUserPairingId] = useState<string | null>(null)
useEffect(() => {
@ -39,28 +40,22 @@ function App() {
messageBus.isReady().then(() => {
messageBus.getProcesses().then((processes: any) => {
setProcesses(processes);
for (const key of Object.keys(processes)) {
try {
const process = processes[key];
if (Object.keys(process.states?.[0]?.keys).length === 0) {
continue;
}
console.log(key);
console.log(process);
} catch (error) {
console.error('Failed to retrieve data:', error);
}
}
});
});
}
}, [isConnected, iframeUrl]);
useEffect(() => {
if (isConnected && processes !== null) {
const messageBus = MessageBus.getInstance(iframeUrl);
messageBus.isReady().then(() => {
messageBus.getMyProcesses().then((res: string[]) => {
setMyProcesses(res);
})
});
}
}, [isConnected, processes]);
useEffect(() => {
if (isConnected && userPairingId === null) {
const messageBus = MessageBus.getInstance(iframeUrl);

View File

@ -228,6 +228,41 @@ export default class MessageBus {
});
}
public getMyProcesses(): Promise<string[]> {
return new Promise<string[]>((resolve: (myProcesses: string[]) => void, reject: (error: string) => void) => {
this.checkToken().then(() => {
const userStore = UserStore.getInstance();
const accessToken = userStore.getAccessToken()!;
const correlationId = uuidv4();
this.initMessageListener(correlationId);
const unsubscribe = EventBus.getInstance().on('GET_MY_PROCESSES', (responseId: string, myProcesses: string[]) => {
if (responseId !== correlationId) {
return;
}
unsubscribe();
this.destroyMessageListener();
resolve(myProcesses);
});
const unsubscribeError = EventBus.getInstance().on('ERROR_GET_MY_PROCESSES', (responseId: string, error: string) => {
if (responseId !== correlationId) {
return;
}
unsubscribeError();
this.destroyMessageListener();
reject(error);
});
this.sendMessage({
type: 'GET_MY_PROCESSES',
accessToken,
});
}).catch(console.error);
});
}
public getData(processId: string, stateId: string): Promise<any> {
return new Promise<any>((resolve: (data: any) => void, reject: (error: string) => void) => {
this.checkToken().then(() => {
@ -444,6 +479,16 @@ export default class MessageBus {
EventBus.getInstance().emit('PROCESSES_RETRIEVED', correlationId, message.processes);
break;
case 'GET_MY_PROCESSES':
if (this.errors[correlationId]) {
const error = this.errors[correlationId];
delete this.errors[correlationId];
EventBus.getInstance().emit('ERROR_GET_MY_PROCESSES', correlationId, error);
return;
}
EventBus.getInstance().emit('GET_MY_PROCESSES', correlationId, message.myProcesses);
break;
case 'PROFILE_CREATED': // CREATE_PROFILE
if (this.errors[correlationId]) {
const error = this.errors[correlationId];