Skip to content

Commit 71322cd

Browse files
Merge pull request #2161 from ricaelchiquetti/main
feat(whatsapp): corrigir Business (base64/filename/caption), remoteJid
2 parents 263854d + a84faaa commit 71322cd

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

src/api/integrations/channel/meta/whatsapp.business.service.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,9 @@ export class BusinessStartupService extends ChannelStartupService {
516516
const mediaUrl = await s3Service.getObjectUrl(fullName);
517517

518518
messageRaw.message.mediaUrl = mediaUrl;
519-
messageRaw.message.base64 = buffer.data.toString('base64');
519+
if (this.localWebhook.enabled && this.localWebhook.webhookBase64) {
520+
messageRaw.message.base64 = buffer.data.toString('base64');
521+
}
520522

521523
// Processar OpenAI speech-to-text para áudio após o mediaUrl estar disponível
522524
if (this.configService.get<Openai>('OPENAI').ENABLED && mediaType === 'audio') {
@@ -554,11 +556,19 @@ export class BusinessStartupService extends ChannelStartupService {
554556
this.logger.error(['Error on upload file to minio', error?.message, error?.stack]);
555557
}
556558
} else {
557-
const buffer = await this.downloadMediaMessage(received?.messages[0]);
558-
messageRaw.message.base64 = buffer.toString('base64');
559+
if (this.localWebhook.enabled && this.localWebhook.webhookBase64) {
560+
const buffer = await this.downloadMediaMessage(received?.messages[0]);
561+
messageRaw.message.base64 = buffer.toString('base64');
562+
}
559563

560564
// Processar OpenAI speech-to-text para áudio mesmo sem S3
561565
if (this.configService.get<Openai>('OPENAI').ENABLED && message.type === 'audio') {
566+
let openAiBase64 = messageRaw.message.base64;
567+
if (!openAiBase64) {
568+
const buffer = await this.downloadMediaMessage(received?.messages[0]);
569+
openAiBase64 = buffer.toString('base64');
570+
}
571+
562572
const openAiDefaultSettings = await this.prismaRepository.openaiSetting.findFirst({
563573
where: {
564574
instanceId: this.instanceId,
@@ -574,7 +584,7 @@ export class BusinessStartupService extends ChannelStartupService {
574584
openAiDefaultSettings.OpenaiCreds,
575585
{
576586
message: {
577-
base64: messageRaw.message.base64,
587+
base64: openAiBase64,
578588
...messageRaw,
579589
},
580590
},
@@ -1016,6 +1026,7 @@ export class BusinessStartupService extends ChannelStartupService {
10161026
[message['mediaType']]: {
10171027
[message['type']]: message['id'],
10181028
...(message['mediaType'] !== 'audio' &&
1029+
message['mediaType'] !== 'video' &&
10191030
message['fileName'] &&
10201031
!isImage && { filename: message['fileName'] }),
10211032
...(message['mediaType'] !== 'audio' && message['caption'] && { caption: message['caption'] }),
@@ -1606,9 +1617,14 @@ export class BusinessStartupService extends ChannelStartupService {
16061617
const messageType = msg.messageType.includes('Message') ? msg.messageType : msg.messageType + 'Message';
16071618
const mediaMessage = msg.message[messageType];
16081619

1620+
if (!msg.message?.base64) {
1621+
const buffer = await this.downloadMediaMessage({ type: messageType, ...msg.message });
1622+
msg.message.base64 = buffer.toString('base64');
1623+
}
1624+
16091625
return {
16101626
mediaType: msg.messageType,
1611-
fileName: mediaMessage?.fileName,
1627+
fileName: mediaMessage?.fileName || mediaMessage?.filename,
16121628
caption: mediaMessage?.caption,
16131629
size: {
16141630
fileLength: mediaMessage?.fileLength,

src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1330,6 +1330,10 @@ export class BaileysStartupService extends ChannelStartupService {
13301330
this.logger.verbose(messageRaw);
13311331

13321332
sendTelemetry(`received.message.${messageRaw.messageType ?? 'unknown'}`);
1333+
if (messageRaw.key.remoteJid?.includes('@lid') && messageRaw.key.remoteJidAlt) {
1334+
messageRaw.key.remoteJid = messageRaw.key.remoteJidAlt;
1335+
}
1336+
console.log(messageRaw);
13331337

13341338
this.sendDataWebhook(Events.MESSAGES_UPSERT, messageRaw);
13351339

0 commit comments

Comments
 (0)