From a3c3ad27d61566fac9f3fc362a718072ee348e1f Mon Sep 17 00:00:00 2001 From: Kevin Aleman Date: Thu, 2 May 2024 15:55:48 -0600 Subject: [PATCH 1/2] fix: Add default behavior to `executeViewCloseHandler` for all apps that don't implement it (#763) Co-authored-by: Douglas Gubert --- src/server/managers/AppListenerManager.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/server/managers/AppListenerManager.ts b/src/server/managers/AppListenerManager.ts index b2f9fc39b..3fe22a243 100644 --- a/src/server/managers/AppListenerManager.ts +++ b/src/server/managers/AppListenerManager.ts @@ -239,6 +239,8 @@ export class AppListenerManager { private listeners: Map>; + private defaultHandlers = new Map(); + /** * Locked events are those who are listed in an app's * "essentials" list but the app is disabled. @@ -256,6 +258,8 @@ export class AppListenerManager { this.listeners.set(intt, []); this.lockedEvents.set(intt, new Set()); }); + + this.defaultHandlers.set('executeViewClosedHandler', { success: true }); } public registerListeners(app: ProxiedApp): void { @@ -1052,7 +1056,12 @@ export class AppListenerManager { const app = this.manager.getOneById(appId); if (!app?.hasMethod(method)) { - console.warn(`App ${appId} triggered an interaction but it doen't exist or doesn't have method ${method}`); + if (this.defaultHandlers.has(method)) { + console.warn(`App ${appId} triggered an interaction but it doesn't exist or doesn't have method ${method}. Falling back to default handler.`); + return this.defaultHandlers.get(method); + } + + console.warn(`App ${appId} triggered an interaction but it doesn't exist or doesn't have method ${method} and there is no default handler for it.`); return; } From 8c51bcf71ccc4a9fb1b5fb777fded58b9b725e19 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Thu, 2 May 2024 20:36:31 -0300 Subject: [PATCH 2/2] 1.42.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4c0368551..929b7a4ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/apps-engine", - "version": "1.42.1", + "version": "1.42.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 9707f3adf..a7c5d6a22 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/apps-engine", - "version": "1.42.1", + "version": "1.42.2", "description": "The engine code for the Rocket.Chat Apps which manages, runs, translates, coordinates and all of that.", "main": "index", "typings": "index",