From e7bc1021f7aaef05685753923fe48feba6567f94 Mon Sep 17 00:00:00 2001 From: Kevin Aleman <kevin.aleman@rocket.chat> Date: Wed, 9 Feb 2022 12:22:24 -0600 Subject: [PATCH] [FIX] Prevent Apps Bridge to remove visitor status from room (#24305) * Store visitor status inside room for UI usage --- app/apps/server/converters/rooms.js | 1 + app/apps/server/converters/visitors.js | 2 ++ app/livechat/server/lib/Livechat.js | 4 +++- package-lock.json | 6 +++--- package.json | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/apps/server/converters/rooms.js b/app/apps/server/converters/rooms.js index ecd2385557e..2b82f93eee5 100644 --- a/app/apps/server/converters/rooms.js +++ b/app/apps/server/converters/rooms.js @@ -41,6 +41,7 @@ export class AppRoomsConverter { _id: visitor._id, username: visitor.username, token: visitor.token, + status: visitor.status, }; } diff --git a/app/apps/server/converters/visitors.js b/app/apps/server/converters/visitors.js index 1f698cf41ee..55931c82a89 100644 --- a/app/apps/server/converters/visitors.js +++ b/app/apps/server/converters/visitors.js @@ -33,6 +33,7 @@ export class AppVisitorsConverter { phone: 'phone', visitorEmails: 'visitorEmails', livechatData: 'livechatData', + status: 'status', }; return transformMappedData(visitor, map); @@ -50,6 +51,7 @@ export class AppVisitorsConverter { token: visitor.token, phone: visitor.phone, livechatData: visitor.livechatData, + status: visitor.status, ...(visitor.visitorEmails && { visitorEmails: visitor.visitorEmails }), ...(visitor.department && { department: visitor.department }), }; diff --git a/app/livechat/server/lib/Livechat.js b/app/livechat/server/lib/Livechat.js index 222904291ac..d0adadfc5d2 100644 --- a/app/livechat/server/lib/Livechat.js +++ b/app/livechat/server/lib/Livechat.js @@ -270,7 +270,7 @@ export const Livechat = { return true; }, - registerGuest({ id, token, name, email, department, phone, username, connectionData } = {}) { + registerGuest({ id, token, name, email, department, phone, username, connectionData, status = 'online' } = {}) { check(token, String); check(id, Match.Maybe(String)); @@ -280,6 +280,7 @@ export const Livechat = { const updateUser = { $set: { token, + status, ...(phone?.number ? { phone: [{ phoneNumber: phone.number }] } : {}), ...(name ? { name } : {}), }, @@ -321,6 +322,7 @@ export const Livechat = { const userData = { username, + status, ts: new Date(), ...(id && { _id: id }), }; diff --git a/package-lock.json b/package-lock.json index 38d518b46bb..23ab1ada42b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5357,9 +5357,9 @@ } }, "@rocket.chat/apps-engine": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/apps-engine/-/apps-engine-1.30.0.tgz", - "integrity": "sha512-04X4nQPgZEz9w4b/8zCyW+EVixfzdrugW4u6YUYnB4tc9lDALawSvhz88XlDGvKwbsUKFfSx6ejdhASwSssPcA==", + "version": "1.31.0-alpha.5889", + "resolved": "https://registry.npmjs.org/@rocket.chat/apps-engine/-/apps-engine-1.31.0-alpha.5889.tgz", + "integrity": "sha512-Trn8rbEAmYnSx/acksn8ItpfeW4ZQCiSRQ2iGzKRKPjKo10hkArOcIJjFP+aetq28VusItD9TENOq9JLJgLCxw==", "requires": { "adm-zip": "^0.4.9", "cryptiles": "^4.1.3", diff --git a/package.json b/package.json index 4c764962f6a..da9ec1c8a1e 100644 --- a/package.json +++ b/package.json @@ -176,7 +176,7 @@ "@nivo/heatmap": "0.73.0", "@nivo/line": "0.62.0", "@nivo/pie": "0.73.0", - "@rocket.chat/apps-engine": "^1.30.0", + "@rocket.chat/apps-engine": "^1.31.0-alpha.5889", "@rocket.chat/css-in-js": "^0.31.3", "@rocket.chat/emitter": "^0.31.3", "@rocket.chat/fuselage": "^0.31.3", -- GitLab