From cdf783a1b5f4839c24a42f700802f08bc7d9e7a9 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Fri, 12 Sep 2025 14:53:14 -0300 Subject: [PATCH 1/2] chore: removes livechat:removeAllClosedRooms deprecated method --- apps/meteor/app/livechat/server/index.ts | 1 - .../server/methods/removeAllClosedRooms.ts | 44 ------------------- 2 files changed, 45 deletions(-) delete mode 100644 apps/meteor/app/livechat/server/methods/removeAllClosedRooms.ts diff --git a/apps/meteor/app/livechat/server/index.ts b/apps/meteor/app/livechat/server/index.ts index 3481d83d927bf..66a8e353a33fb 100644 --- a/apps/meteor/app/livechat/server/index.ts +++ b/apps/meteor/app/livechat/server/index.ts @@ -15,7 +15,6 @@ import './hooks/afterUserActions'; import './hooks/afterAgentRemoved'; import './hooks/afterSaveOmnichannelMessage'; import './methods/getAnalyticsChartData'; -import './methods/removeAllClosedRooms'; import './methods/removeCustomField'; import './methods/removeRoom'; import './methods/saveAgentInfo'; diff --git a/apps/meteor/app/livechat/server/methods/removeAllClosedRooms.ts b/apps/meteor/app/livechat/server/methods/removeAllClosedRooms.ts deleted file mode 100644 index 632c5f1e1e7e1..0000000000000 --- a/apps/meteor/app/livechat/server/methods/removeAllClosedRooms.ts +++ /dev/null @@ -1,44 +0,0 @@ -import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; -import type { ServerMethods } from '@rocket.chat/ddp-client'; -import { Logger } from '@rocket.chat/logger'; -import { LivechatRooms } from '@rocket.chat/models'; -import { Meteor } from 'meteor/meteor'; - -import { callbacks } from '../../../../lib/callbacks'; -import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission'; -import { methodDeprecationLogger } from '../../../lib/server/lib/deprecationWarningLogger'; -import { removeOmnichannelRoom } from '../lib/rooms'; - -declare module '@rocket.chat/ddp-client' { - // eslint-disable-next-line @typescript-eslint/naming-convention - interface ServerMethods { - 'livechat:removeAllClosedRooms'(departmentIds?: string[]): Promise; - } -} - -Meteor.methods({ - async 'livechat:removeAllClosedRooms'(departmentIds) { - methodDeprecationLogger.method('livechat:removeAllClosedRooms', '8.0.0', '/v1/livechat/rooms.removeAllClosedRooms'); - const logger = new Logger('livechat:removeAllClosedRooms'); - const user = Meteor.userId(); - - if (!user || !(await hasPermissionAsync(user, 'remove-closed-livechat-rooms'))) { - throw new Meteor.Error('error-not-allowed', 'Not allowed', { - method: 'livechat:removeAllClosedRoom', - }); - } - - // These are not debug logs since we want to know when the action is performed - logger.info(`User ${Meteor.userId()} is removing all closed rooms`); - - const extraQuery = await callbacks.run('livechat.applyRoomRestrictions', {}, { userId: user }); - const promises: Promise[] = []; - await LivechatRooms.findClosedRooms(departmentIds, {}, extraQuery).forEach(({ _id }: IOmnichannelRoom) => { - promises.push(removeOmnichannelRoom(_id)); - }); - await Promise.all(promises); - - logger.info(`User ${Meteor.userId()} removed ${promises.length} closed rooms`); - return promises.length; - }, -}); From b32aa1a5b1abd47ff861c54dcc42829bac51091d Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Fri, 12 Sep 2025 14:56:53 -0300 Subject: [PATCH 2/2] doc: adds changeset Updates the version of '@rocket.chat/meteor' to major and removes the deprecated method from the Realtime API. --- .changeset/neat-spoons-cover.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/neat-spoons-cover.md diff --git a/.changeset/neat-spoons-cover.md b/.changeset/neat-spoons-cover.md new file mode 100644 index 0000000000000..ed5941e748a69 --- /dev/null +++ b/.changeset/neat-spoons-cover.md @@ -0,0 +1,5 @@ +--- +"@rocket.chat/meteor": major +--- + +Removes deprecated Realtime API method: `livechat:removeAllClosedRooms`