From 00bc3d8ad27a6dc06e2be93a63c78a02951cd9d3 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Wed, 11 Jun 2025 20:35:17 +0200 Subject: [PATCH] Add getMyProcesses api --- src/models/process.model.ts | 1 + src/router.ts | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/models/process.model.ts b/src/models/process.model.ts index a72c554..650c13d 100755 --- a/src/models/process.model.ts +++ b/src/models/process.model.ts @@ -30,6 +30,7 @@ export enum MessageType { CREATE_PROFILE = 'CREATE_PROFILE', PROFILE_CREATED = 'PROFILE_CREATED', GET_PROCESSES = 'GET_PROCESSES', + GET_MY_PROCESSES = 'GET_MY_PROCESSES', PROCESSES_RETRIEVED = 'PROCESSES_RETRIEVED', CREATE_FOLDER = 'CREATE_FOLDER', FOLDER_CREATED = 'FOLDER_CREATED', diff --git a/src/router.ts b/src/router.ts index 2b97eb2..8fc6e3c 100755 --- a/src/router.ts +++ b/src/router.ts @@ -269,6 +269,42 @@ export async function registerAllListeners() { } } + const handleGetMyProcesses = async (event: MessageEvent) => { + if (event.data.type !== MessageType.GET_MY_PROCESSES) { + return; + } + + const tokenService = await TokenService.getInstance(); + + if (!services.isPaired()) { + const errorMsg = 'Device not paired'; + errorResponse(errorMsg, event.origin); + return; + } + + try { + const { accessToken } = event.data; + + // Validate the session token + if (!accessToken || await !tokenService.validateToken(accessToken, event.origin)) { + throw new Error('Invalid or expired session token'); + } + + const myProcesses = await services.getMyProcesses(); + + window.parent.postMessage( + { + type: MessageType.GET_MY_PROCESSES, + myProcesses + }, + event.origin + ); + } catch (e) { + const errorMsg = `Failed to get processes: ${e}`; + errorResponse(errorMsg, event.origin); + } + } + const handleGetProcesses = async (event: MessageEvent) => { if (event.data.type !== MessageType.GET_PROCESSES) { return; @@ -484,6 +520,7 @@ export async function registerAllListeners() { window.removeEventListener('message', handleRequestLink); window.removeEventListener('message', handleAddProfile); window.removeEventListener('message', handleGetProcesses); + window.removeEventListener('message', handleGetMyProcesses); window.removeEventListener('message', handleAddFolder); window.removeEventListener('message', handleDecryptState); window.removeEventListener('message', handleValidateToken); @@ -493,6 +530,7 @@ export async function registerAllListeners() { window.addEventListener('message', handleRequestLink); window.addEventListener('message', handleAddProfile); window.addEventListener('message', handleGetProcesses); + window.addEventListener('message', handleGetMyProcesses); window.addEventListener('message', handleAddFolder); window.addEventListener('message', handleDecryptState); window.addEventListener('message', handleValidateToken);