From c00f13214542f28422cc12a1255a3b55b90ed1c9 Mon Sep 17 00:00:00 2001 From: Davidson Gomes Date: Sun, 16 Jul 2023 18:01:43 -0300 Subject: [PATCH] fix: Added group membership validation before sending message to groups --- CHANGELOG.md | 1 + src/whatsapp/controllers/sendMessage.controller.ts | 1 - src/whatsapp/services/whatsapp.service.ts | 7 ++++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a044499c..633373c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * Fixed in the postman collection the webhookByEvent parameter by webhook_by_events * Now it's getting the API URL directly in the request, no longer need the variable in the env file * Removed link preview endpoint, now it's done automatically from sending conventional text +* Added group membership validation before sending message to groups # 1.2.2 (2023-07-15 09:36) diff --git a/src/whatsapp/controllers/sendMessage.controller.ts b/src/whatsapp/controllers/sendMessage.controller.ts index 86dc6dca..e80cbfcf 100644 --- a/src/whatsapp/controllers/sendMessage.controller.ts +++ b/src/whatsapp/controllers/sendMessage.controller.ts @@ -5,7 +5,6 @@ import { SendAudioDto, SendButtonDto, SendContactDto, - SendLinkPreviewDto, SendListDto, SendLocationDto, SendMediaDto, diff --git a/src/whatsapp/services/whatsapp.service.ts b/src/whatsapp/services/whatsapp.service.ts index f7f9d7f6..a10c6223 100644 --- a/src/whatsapp/services/whatsapp.service.ts +++ b/src/whatsapp/services/whatsapp.service.ts @@ -1434,6 +1434,12 @@ export class WAStartupService { let mentions: string[]; if (isJidGroup(sender)) { try { + const groupMetadata = await this.client.groupMetadata(sender); + + if (!groupMetadata) { + throw new NotFoundException('Group not found'); + } + if (options?.mentions) { this.logger.verbose('Mentions defined'); @@ -1448,7 +1454,6 @@ export class WAStartupService { this.logger.verbose('Mentions everyone'); this.logger.verbose('Getting group metadata'); - const groupMetadata = await this.client.groupMetadata(sender); mentions = groupMetadata.participants.map((participant) => participant.id); this.logger.verbose('Getting group metadata for mentions'); } else {