From 7adab5c1c05f00cb866eab9b1639128fa0be5aa4 Mon Sep 17 00:00:00 2001 From: Felipe Medeiros Date: Mon, 7 Oct 2024 19:14:21 -0300 Subject: [PATCH] =?UTF-8?q?Escutar=20a=20configura=C3=A7=C3=A3o=20do=20web?= =?UTF-8?q?hook=20para=20midias=20recebidas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../whatsapp/whatsapp.baileys.service.ts | 49 ++++++++++--------- src/api/services/channel.service.ts | 12 +++++ 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts b/src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts index d10fb748..64d5388c 100644 --- a/src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts +++ b/src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts @@ -598,6 +598,7 @@ export class BaileysStartupService extends ChannelStartupService { try { this.loadChatwoot(); this.loadSettings(); + this.loadWebhook(); this.loadProxy(); return await this.createClient(number); @@ -1152,18 +1153,20 @@ export class BaileysStartupService extends ChannelStartupService { } } - if (isMedia && !this.configService.get('S3').ENABLE) { - const buffer = await downloadMediaMessage( - { key: received.key, message: received?.message }, - 'buffer', - {}, - { - logger: P({ level: 'error' }) as any, - reuploadRequest: this.client.updateMediaMessage, - }, - ); + if (this.localWebhook.enabled) { + if (isMedia && this.localWebhook.webhookBase64) { + const buffer = await downloadMediaMessage( + { key: received.key, message: received?.message }, + 'buffer', + {}, + { + logger: P({ level: 'error' }) as any, + reuploadRequest: this.client.updateMediaMessage, + }, + ); - messageRaw.message.base64 = buffer ? buffer.toString('base64') : undefined; + messageRaw.message.base64 = buffer ? buffer.toString('base64') : undefined; + } } this.logger.log(messageRaw); @@ -2070,18 +2073,20 @@ export class BaileysStartupService extends ChannelStartupService { } } - if (isMedia && !this.configService.get('S3').ENABLE) { - const buffer = await downloadMediaMessage( - { key: messageRaw.key, message: messageRaw?.message }, - 'buffer', - {}, - { - logger: P({ level: 'error' }) as any, - reuploadRequest: this.client.updateMediaMessage, - }, - ); + if (this.localWebhook.enabled) { + if (isMedia && this.localWebhook.webhookBase64) { + const buffer = await downloadMediaMessage( + { key: messageRaw.key, message: messageRaw?.message }, + 'buffer', + {}, + { + logger: P({ level: 'error' }) as any, + reuploadRequest: this.client.updateMediaMessage, + }, + ); - messageRaw.message.base64 = buffer ? buffer.toString('base64') : undefined; + messageRaw.message.base64 = buffer ? buffer.toString('base64') : undefined; + } } this.logger.log(messageRaw); diff --git a/src/api/services/channel.service.ts b/src/api/services/channel.service.ts index 5d079b69..fd354d52 100644 --- a/src/api/services/channel.service.ts +++ b/src/api/services/channel.service.ts @@ -34,6 +34,7 @@ export class ChannelStartupService { public readonly localChatwoot: wa.LocalChatwoot = {}; public readonly localProxy: wa.LocalProxy = {}; public readonly localSettings: wa.LocalSettings = {}; + public readonly localWebhook: wa.LocalWebHook = {}; public chatwootService = new ChatwootService( waMonitor, @@ -124,6 +125,17 @@ export class ChannelStartupService { return this.instance.wuid; } + public async loadWebhook() { + const data = await this.prismaRepository.webhook.findUnique({ + where: { + instanceId: this.instanceId, + }, + }); + + this.localWebhook.enabled = data?.enabled; + this.localWebhook.webhookBase64 = data?.webhookBase64; + } + public async loadSettings() { const data = await this.prismaRepository.setting.findUnique({ where: {