mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-22 20:12:02 -06:00
refactor: padroniza retorno da função sendMessage no Baileys
Ajusta o retorno da função "sendMessage" para usar a variável "messageRaw" em vez de "messageSent", garantindo consistência no retorno.
This commit is contained in:
parent
76fe717076
commit
0544d80cbd
@ -620,7 +620,7 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
const existingChatIdSet = new Set(existingChatIds.map((chat) => chat.remoteJid));
|
||||
|
||||
const chatsToInsert = chats
|
||||
.filter((chat) => !existingChatIdSet.has(chat.id))
|
||||
.filter((chat) => !existingChatIdSet?.has(chat.id))
|
||||
.map((chat) => ({ remoteJid: chat.id, instanceId: this.instanceId, name: chat.name }));
|
||||
|
||||
this.sendDataWebhook(Events.CHATS_UPSERT, chatsToInsert);
|
||||
@ -757,6 +757,7 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
this.logger.error('line 817');
|
||||
this.logger.error(`Error: ${error.message}`);
|
||||
}
|
||||
@ -849,7 +850,7 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
);
|
||||
|
||||
for (const chat of chats) {
|
||||
if (chatsRepository.has(chat.id)) {
|
||||
if (chatsRepository?.has(chat.id)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -906,7 +907,7 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
}
|
||||
}
|
||||
|
||||
if (messagesRepository.has(m.key.id)) {
|
||||
if (messagesRepository?.has(m.key.id)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1053,6 +1054,7 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
};
|
||||
|
||||
if (messageRaw.message.extendedTextMessage) {
|
||||
messageRaw.messageType = 'conversation';
|
||||
messageRaw.message.conversation = messageRaw.message.extendedTextMessage.text;
|
||||
delete messageRaw.message.extendedTextMessage;
|
||||
}
|
||||
@ -1949,6 +1951,14 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
messageSent = await this.sendMessage(sender, message, mentions, linkPreview, quoted);
|
||||
}
|
||||
|
||||
const isMedia =
|
||||
messageSent?.message?.imageMessage ||
|
||||
messageSent?.message?.videoMessage ||
|
||||
messageSent?.message?.stickerMessage ||
|
||||
messageSent?.message?.documentMessage ||
|
||||
messageSent?.message?.documentWithCaptionMessage ||
|
||||
messageSent?.message?.audioMessage;
|
||||
|
||||
const contentMsg = messageSent.message[getContentType(messageSent.message)] as any;
|
||||
|
||||
if (Long.isLong(messageSent?.messageTimestamp)) {
|
||||
@ -1967,10 +1977,98 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
};
|
||||
|
||||
if (messageRaw.message.extendedTextMessage) {
|
||||
messageRaw.messageType = 'conversation';
|
||||
messageRaw.message.conversation = messageRaw.message.extendedTextMessage.text;
|
||||
delete messageRaw.message.extendedTextMessage;
|
||||
}
|
||||
|
||||
if (this.configService.get<Database>('DATABASE').SAVE_DATA.NEW_MESSAGE) {
|
||||
const msg = await this.prismaRepository.message.create({
|
||||
data: messageRaw,
|
||||
});
|
||||
|
||||
if (isMedia && this.configService.get<S3>('S3').ENABLE) {
|
||||
try {
|
||||
const message: any = messageSent;
|
||||
const media = await this.getBase64FromMediaMessage(
|
||||
{
|
||||
message,
|
||||
},
|
||||
true,
|
||||
);
|
||||
|
||||
const { buffer, mediaType, fileName, size } = media;
|
||||
|
||||
const mimetype = mime.getType(fileName).toString();
|
||||
|
||||
const fullName = join(`${this.instance.id}`, messageSent.key.remoteJid, mediaType, fileName);
|
||||
|
||||
await s3Service.uploadFile(fullName, buffer, size.fileLength?.low, {
|
||||
'Content-Type': mimetype,
|
||||
});
|
||||
|
||||
await this.prismaRepository.media.create({
|
||||
data: {
|
||||
messageId: msg.id,
|
||||
instanceId: this.instanceId,
|
||||
type: mediaType,
|
||||
fileName: fullName,
|
||||
mimetype,
|
||||
},
|
||||
});
|
||||
|
||||
const mediaUrl = await s3Service.getObjectUrl(fullName);
|
||||
|
||||
messageRaw.message.mediaUrl = mediaUrl;
|
||||
|
||||
await this.prismaRepository.message.update({
|
||||
where: { id: msg.id },
|
||||
data: messageRaw,
|
||||
});
|
||||
} catch (error) {
|
||||
this.logger.error(['Error on upload file to minio', error?.message, error?.stack]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isMedia && !this.configService.get<S3>('S3').ENABLE) {
|
||||
const buffer = await downloadMediaMessage(
|
||||
{ key: messageSent.key, message: messageSent?.message },
|
||||
'buffer',
|
||||
{},
|
||||
{
|
||||
logger: P({ level: 'error' }) as any,
|
||||
reuploadRequest: this.client.updateMediaMessage,
|
||||
},
|
||||
);
|
||||
|
||||
messageRaw.message.base64 = buffer ? buffer.toString('base64') : undefined;
|
||||
}
|
||||
|
||||
if (this.configService.get<Openai>('OPENAI').ENABLED) {
|
||||
const openAiDefaultSettings = await this.prismaRepository.openaiSetting.findFirst({
|
||||
where: {
|
||||
instanceId: this.instanceId,
|
||||
},
|
||||
include: {
|
||||
OpenaiCreds: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (
|
||||
openAiDefaultSettings &&
|
||||
openAiDefaultSettings.openaiCredsId &&
|
||||
openAiDefaultSettings.speechToText &&
|
||||
messageSent?.message?.audioMessage
|
||||
) {
|
||||
messageRaw.message.speechToText = await this.openaiService.speechToText(
|
||||
openAiDefaultSettings.OpenaiCreds,
|
||||
messageSent,
|
||||
this.client.updateMediaMessage,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
this.logger.log(messageRaw);
|
||||
|
||||
this.sendDataWebhook(Events.SEND_MESSAGE, messageRaw);
|
||||
@ -2052,7 +2150,7 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
}
|
||||
}
|
||||
|
||||
return messageSent;
|
||||
return messageRaw;
|
||||
} catch (error) {
|
||||
this.logger.error('line 2081');
|
||||
this.logger.error(error);
|
||||
@ -3314,7 +3412,7 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
const cacheConf = configService.get<CacheConf>('CACHE');
|
||||
|
||||
if ((cacheConf?.REDIS?.ENABLED && cacheConf?.REDIS?.URI !== '') || cacheConf?.LOCAL?.ENABLED) {
|
||||
if (await groupMetadataCache.has(groupJid)) {
|
||||
if (await groupMetadataCache?.has(groupJid)) {
|
||||
console.log(`Cache request for group: ${groupJid}`);
|
||||
const meta = await groupMetadataCache.get(groupJid);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user