diff --git a/src/api/models/message.model.ts b/src/api/models/message.model.ts index 6fb14f23..39ba60c4 100644 --- a/src/api/models/message.model.ts +++ b/src/api/models/message.model.ts @@ -24,7 +24,7 @@ export class MessageRaw { key?: Key; pushName?: string; participant?: string; - message?: object; + message?: any; messageType?: string; messageTimestamp?: number | Long; owner: string; diff --git a/src/api/services/channels/whatsapp.baileys.service.ts b/src/api/services/channels/whatsapp.baileys.service.ts index 8f193189..e7c438e4 100644 --- a/src/api/services/channels/whatsapp.baileys.service.ts +++ b/src/api/services/channels/whatsapp.baileys.service.ts @@ -64,6 +64,7 @@ import { Log, ProviderSession, QrCode, + Websocket, } from '../../../config/env.config'; import { INSTANCE_DIR } from '../../../config/path.config'; import { BadRequestException, InternalServerErrorException, NotFoundException } from '../../../exceptions'; @@ -1115,7 +1116,16 @@ export class BaileysStartupService extends ChannelStartupService { const contentMsg = received?.message[getContentType(received.message)] as any; - if (this.localWebhook.webhook_base64 === true && isMedia) { + if ( + ( + this.localWebhook.webhook_base64 === true || + ( + this.configService.get('WEBSOCKET').GLOBAL_EVENTS === true && + this.configService.get('WEBSOCKET').ENABLED === true + ) + ) && + isMedia + ) { const buffer = await downloadMediaMessage( { key: received.key, message: received?.message }, 'buffer', @@ -1956,6 +1966,36 @@ export class BaileysStartupService extends ChannelStartupService { source: getDevice(messageSent.key.id), }; + const isMedia = + messageRaw.messageType === 'imageMessage' || + messageRaw.messageType === 'videoMessage' || + messageRaw.messageType === 'documentMessage' || + messageRaw.messageType === 'audioMessage'; + + console.log('isMedia', isMedia); + + if ( + ( + this.localWebhook.webhook_base64 === true || + ( + this.configService.get('WEBSOCKET').GLOBAL_EVENTS === true && + this.configService.get('WEBSOCKET').ENABLED === true + ) + ) && + isMedia + ) { + 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; + } + this.logger.log(messageRaw); this.logger.verbose('Sending data to webhook in event SEND_MESSAGE');