Skip to content

Commit 486d820

Browse files
chore!: remove deprecated meteor eraseRoom method (#32648)
Co-authored-by: Guilherme Gazzo <[email protected]>
1 parent 6b64106 commit 486d820

File tree

8 files changed

+18
-40
lines changed

8 files changed

+18
-40
lines changed

.changeset/chilled-boats-sip.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@rocket.chat/meteor': patch
3+
---
4+
5+
This adjustment removes the deprecated `eraseRoom` method. Moving forward, use the `room.delete` endpoint to delete rooms.

apps/meteor/app/api/server/v1/channels.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
import { Meteor } from 'meteor/meteor';
2424

2525
import { isTruthy } from '../../../../lib/isTruthy';
26+
import { eraseRoom } from '../../../../server/lib/eraseRoom';
2627
import { findUsersOfRoom } from '../../../../server/lib/findUsersOfRoom';
2728
import { hideRoomMethod } from '../../../../server/methods/hideRoom';
2829
import { removeUserFromRoomMethod } from '../../../../server/methods/removeUserFromRoom';
@@ -463,7 +464,7 @@ API.v1.addRoute(
463464
checkedArchived: false,
464465
});
465466

466-
await Meteor.callAsync('eraseRoom', room._id);
467+
await eraseRoom(room._id, this.userId);
467468

468469
return API.v1.success();
469470
},

apps/meteor/app/api/server/v1/groups.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { check, Match } from 'meteor/check';
55
import { Meteor } from 'meteor/meteor';
66
import type { Filter } from 'mongodb';
77

8+
import { eraseRoom } from '../../../../server/lib/eraseRoom';
89
import { findUsersOfRoom } from '../../../../server/lib/findUsersOfRoom';
910
import { hideRoomMethod } from '../../../../server/methods/hideRoom';
1011
import { removeUserFromRoomMethod } from '../../../../server/methods/removeUserFromRoom';
@@ -364,7 +365,7 @@ API.v1.addRoute(
364365
checkedArchived: false,
365366
});
366367

367-
await Meteor.callAsync('eraseRoom', findResult.rid);
368+
await eraseRoom(findResult.rid, this.userId);
368369

369370
return API.v1.success();
370371
},

apps/meteor/app/api/server/v1/im.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
import { Match, check } from 'meteor/check';
1515
import { Meteor } from 'meteor/meteor';
1616

17+
import { eraseRoom } from '../../../../server/lib/eraseRoom';
1718
import { createDirectMessage } from '../../../../server/methods/createDirectMessage';
1819
import { hideRoomMethod } from '../../../../server/methods/hideRoom';
1920
import { canAccessRoomIdAsync } from '../../../authorization/server/functions/canAccessRoom';
@@ -26,6 +27,7 @@ import { API } from '../api';
2627
import { addUserToFileObj } from '../helpers/addUserToFileObj';
2728
import { composeRoomWithLastMessage } from '../helpers/composeRoomWithLastMessage';
2829
import { getPaginationItems } from '../helpers/getPaginationItems';
30+
2931
// TODO: Refact or remove
3032

3133
type findDirectMessageRoomProps =
@@ -107,7 +109,7 @@ API.v1.addRoute(
107109
throw new Meteor.Error('error-not-allowed', 'Not allowed');
108110
}
109111

110-
await Meteor.callAsync('eraseRoom', room._id);
112+
await eraseRoom(room._id, this.userId);
111113

112114
return API.v1.success();
113115
},

apps/meteor/app/api/server/v1/rooms.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { Meteor } from 'meteor/meteor';
1515
import { isTruthy } from '../../../../lib/isTruthy';
1616
import { omit } from '../../../../lib/utils/omit';
1717
import * as dataExport from '../../../../server/lib/dataExport';
18-
import { eraseRoom } from '../../../../server/methods/eraseRoom';
18+
import { eraseRoom } from '../../../../server/lib/eraseRoom';
1919
import { muteUserInRoom } from '../../../../server/methods/muteUserInRoom';
2020
import { unmuteUserInRoom } from '../../../../server/methods/unmuteUserInRoom';
2121
import { canAccessRoomAsync, canAccessRoomIdAsync } from '../../../authorization/server/functions/canAccessRoom';

apps/meteor/app/api/server/v1/teams.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import {
1515
} from '@rocket.chat/rest-typings';
1616
import { escapeRegExp } from '@rocket.chat/string-helpers';
1717
import { Match, check } from 'meteor/check';
18-
import { Meteor } from 'meteor/meteor';
1918

19+
import { eraseRoom } from '../../../../server/lib/eraseRoom';
2020
import { canAccessRoomAsync } from '../../../authorization/server';
2121
import { hasPermissionAsync, hasAtLeastOnePermissionAsync } from '../../../authorization/server/functions/hasPermission';
2222
import { removeUserFromRoom } from '../../../lib/server/functions/removeUserFromRoom';
@@ -136,7 +136,7 @@ API.v1.addRoute(
136136

137137
if (rooms.length) {
138138
for await (const room of rooms) {
139-
await Meteor.callAsync('eraseRoom', room);
139+
await eraseRoom(room, this.userId);
140140
}
141141
}
142142

@@ -652,15 +652,15 @@ API.v1.addRoute(
652652
// If we got a list of rooms to delete along with the team, remove them first
653653
if (rooms.length) {
654654
for await (const room of rooms) {
655-
await Meteor.callAsync('eraseRoom', room);
655+
await eraseRoom(room, this.userId);
656656
}
657657
}
658658

659659
// Move every other room back to the workspace
660660
await Team.unsetTeamIdOfRooms(this.userId, team._id);
661661

662662
// Remove the team's main room
663-
await Meteor.callAsync('eraseRoom', team.roomId);
663+
await eraseRoom(team.roomId, this.userId);
664664

665665
// Delete all team memberships
666666
await Team.removeAllMembersFromTeam(team._id);

apps/meteor/server/methods/eraseRoom.ts renamed to apps/meteor/server/lib/eraseRoom.ts

+1-31
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import { AppEvents, Apps } from '@rocket.chat/apps';
22
import { Message, Team } from '@rocket.chat/core-services';
3-
import type { ServerMethods } from '@rocket.chat/ddp-client';
43
import { Rooms } from '@rocket.chat/models';
5-
import { check } from 'meteor/check';
64
import { Meteor } from 'meteor/meteor';
75

86
import { hasPermissionAsync } from '../../app/authorization/server/functions/hasPermission';
97
import { deleteRoom } from '../../app/lib/server/functions/deleteRoom';
10-
import { methodDeprecationLogger } from '../../app/lib/server/lib/deprecationWarningLogger';
11-
import { roomCoordinator } from '../lib/rooms/roomCoordinator';
8+
import { roomCoordinator } from './rooms/roomCoordinator';
129

1310
export async function eraseRoom(rid: string, uid: string): Promise<void> {
1411
const room = await Rooms.findOneById(rid);
@@ -57,30 +54,3 @@ export async function eraseRoom(rid: string, uid: string): Promise<void> {
5754
void Apps.getBridges()?.getListenerBridge().roomEvent(AppEvents.IPostRoomDeleted, room);
5855
}
5956
}
60-
61-
declare module '@rocket.chat/ddp-client' {
62-
// eslint-disable-next-line @typescript-eslint/naming-convention
63-
interface ServerMethods {
64-
eraseRoom(rid: string): Promise<boolean>;
65-
}
66-
}
67-
68-
Meteor.methods<ServerMethods>({
69-
async eraseRoom(rid: string) {
70-
methodDeprecationLogger.method('eraseRoom', '7.0.0');
71-
72-
check(rid, String);
73-
74-
const uid = Meteor.userId();
75-
76-
if (!uid) {
77-
throw new Meteor.Error('error-invalid-user', 'Invalid user', {
78-
method: 'eraseRoom',
79-
});
80-
}
81-
82-
await eraseRoom(rid, uid);
83-
84-
return true;
85-
},
86-
});

apps/meteor/server/methods/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import './channelsList';
1212
import './createDirectMessage';
1313
import './deleteFileMessage';
1414
import './deleteUser';
15-
import './eraseRoom';
1615
import './getAvatarSuggestion';
1716
import './getPasswordPolicy';
1817
import './getRoomById';

0 commit comments

Comments
 (0)