From cb9873ae05dd9484dac43a8b7ccc0f4deac23a6a Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Fri, 24 May 2024 02:40:50 +0530 Subject: [PATCH 1/3] refactor!: removed roomNameExists method Signed-off-by: Abhinav Kumar --- apps/meteor/app/api/server/v1/rooms.ts | 8 ++++- apps/meteor/server/methods/index.ts | 1 - apps/meteor/server/methods/roomNameExists.ts | 34 -------------------- 3 files changed, 7 insertions(+), 36 deletions(-) delete mode 100644 apps/meteor/server/methods/roomNameExists.ts diff --git a/apps/meteor/app/api/server/v1/rooms.ts b/apps/meteor/app/api/server/v1/rooms.ts index e3296b98ef17..92ddafa42011 100644 --- a/apps/meteor/app/api/server/v1/rooms.ts +++ b/apps/meteor/app/api/server/v1/rooms.ts @@ -82,7 +82,13 @@ API.v1.addRoute( async get() { const { roomName } = this.queryParams; - return API.v1.success({ exists: await Meteor.callAsync('roomNameExists', roomName) }); + const room = await Rooms.findOneByName(roomName, { projection: { _id: 1 } }); + + if (room === undefined || room === null) { + return API.v1.success({ exists: false }); + } + + return API.v1.success({ exists: true }); }, }, ); diff --git a/apps/meteor/server/methods/index.ts b/apps/meteor/server/methods/index.ts index 27c345964637..21decc107afa 100644 --- a/apps/meteor/server/methods/index.ts +++ b/apps/meteor/server/methods/index.ts @@ -42,7 +42,6 @@ import './removeUserFromRoom'; import './reportMessage'; import './requestDataDownload'; import './resetAvatar'; -import './roomNameExists'; import './saveUserPreferences'; import './saveUserProfile'; import './sendConfirmationEmail'; diff --git a/apps/meteor/server/methods/roomNameExists.ts b/apps/meteor/server/methods/roomNameExists.ts deleted file mode 100644 index f510391ddd8e..000000000000 --- a/apps/meteor/server/methods/roomNameExists.ts +++ /dev/null @@ -1,34 +0,0 @@ -import type { ServerMethods } from '@rocket.chat/ddp-client'; -import { Rooms } from '@rocket.chat/models'; -import { check } from 'meteor/check'; -import { Meteor } from 'meteor/meteor'; - -import { methodDeprecationLogger } from '../../app/lib/server/lib/deprecationWarningLogger'; - -declare module '@rocket.chat/ddp-client' { - // eslint-disable-next-line @typescript-eslint/naming-convention - interface ServerMethods { - roomNameExists(roomName: string): boolean; - } -} - -Meteor.methods({ - async roomNameExists(roomName) { - check(roomName, String); - - methodDeprecationLogger.method('roomNameExists', '7.0.0'); - - if (!Meteor.userId()) { - throw new Meteor.Error('error-invalid-user', 'Invalid user', { - method: 'roomExists', - }); - } - const room = await Rooms.findOneByName(roomName, { projection: { _id: 1 } }); - - if (room === undefined || room === null) { - return false; - } - - return true; - }, -}); From a54693b9b799a4fbef93f6b09c8a8d9a625dd7d2 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Mon, 3 Jun 2024 16:25:37 +0530 Subject: [PATCH 2/3] minor changes and test fix Signed-off-by: Abhinav Kumar --- apps/meteor/app/api/server/v1/rooms.ts | 6 +----- apps/meteor/tests/end-to-end/api/rooms.ts | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/apps/meteor/app/api/server/v1/rooms.ts b/apps/meteor/app/api/server/v1/rooms.ts index 92ddafa42011..7b54fd491580 100644 --- a/apps/meteor/app/api/server/v1/rooms.ts +++ b/apps/meteor/app/api/server/v1/rooms.ts @@ -84,11 +84,7 @@ API.v1.addRoute( const room = await Rooms.findOneByName(roomName, { projection: { _id: 1 } }); - if (room === undefined || room === null) { - return API.v1.success({ exists: false }); - } - - return API.v1.success({ exists: true }); + return API.v1.success({ exists: !!room }); }, }, ); diff --git a/apps/meteor/tests/end-to-end/api/rooms.ts b/apps/meteor/tests/end-to-end/api/rooms.ts index d59d3722f1a4..dee96c1cf062 100644 --- a/apps/meteor/tests/end-to-end/api/rooms.ts +++ b/apps/meteor/tests/end-to-end/api/rooms.ts @@ -831,7 +831,22 @@ describe('[Rooms]', () => { .end(done); }); - it('should return an error when send an invalid room', (done) => { + it('should return false if this room name does not exist', (done) => { + void request + .get(api('rooms.nameExists')) + .set(credentials) + .query({ + roomName: 'foo', + }) + .expect(200) + .expect((res) => { + expect(res.body).to.have.property('success', true); + expect(res.body).to.have.property('exists', false); + }) + .end(done); + }); + + it('should return an error when send an invalid param', (done) => { void request .get(api('rooms.nameExists')) .set(credentials) From f423b640814f4616ec667b9eab68da3b3f49862d Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Thu, 6 Jun 2024 00:43:26 +0530 Subject: [PATCH 3/3] Update apps/meteor/tests/end-to-end/api/09-rooms.js Co-authored-by: Marcos Spessatto Defendi --- apps/meteor/tests/end-to-end/api/rooms.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/meteor/tests/end-to-end/api/rooms.ts b/apps/meteor/tests/end-to-end/api/rooms.ts index dee96c1cf062..9d775e035e61 100644 --- a/apps/meteor/tests/end-to-end/api/rooms.ts +++ b/apps/meteor/tests/end-to-end/api/rooms.ts @@ -846,7 +846,7 @@ describe('[Rooms]', () => { .end(done); }); - it('should return an error when send an invalid param', (done) => { + it('should return an error when the require parameter (roomName) is not provided', (done) => { void request .get(api('rooms.nameExists')) .set(credentials)