mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-08-28 18:26:12 -06:00
Update whatsapp.baileys.service.ts
Alteração realizada para preservar todos os metadados recebidos no contextInfo (incluindo ctwa_clid, ctwaPayload, conversionData e entryPointConversion*), unificando dados vindos de: - message.message[contentType].contextInfo - message.message.contextInfo - message.messageContextInfo Essa mudança evita a perda de informações enviadas pela Meta em diferentes níveis da estrutura da mensagem, garantindo que esses campos sejam repassados integralmente para o webhook, permitindo integrações completas com a API de Conversões.
This commit is contained in:
parent
9cdb897a0f
commit
61884d80ce
@ -4250,24 +4250,41 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
}
|
||||
|
||||
private prepareMessage(message: proto.IWebMessageInfo): any {
|
||||
const contentType = getContentType(message.message);
|
||||
const contentMsg = message?.message[contentType] as any;
|
||||
const contentType = getContentType(message.message);
|
||||
const contentMsg = message?.message[contentType] as any;
|
||||
|
||||
const messageRaw = {
|
||||
key: message.key,
|
||||
pushName:
|
||||
message.pushName ||
|
||||
(message.key.fromMe
|
||||
? 'Você'
|
||||
: message?.participant || (message.key?.participant ? message.key.participant.split('@')[0] : null)),
|
||||
status: status[message.status],
|
||||
message: { ...message.message },
|
||||
contextInfo: contentMsg?.contextInfo,
|
||||
messageType: contentType || 'unknown',
|
||||
messageTimestamp: message.messageTimestamp as number,
|
||||
instanceId: this.instanceId,
|
||||
source: getDevice(message.key.id),
|
||||
};
|
||||
// [ADD] Merge seguro de contextInfo
|
||||
const mm = message.message as Record<string, any> | undefined;
|
||||
const contentCtx =
|
||||
contentType && mm && typeof mm[contentType] === 'object'
|
||||
? mm[contentType]?.contextInfo
|
||||
: undefined;
|
||||
|
||||
const mergedContext: Record<string, any> = {
|
||||
...(contentCtx || {}),
|
||||
...(message.message?.contextInfo || {}),
|
||||
...(message.messageContextInfo || {}),
|
||||
};
|
||||
|
||||
const contextInfoFinal = Object.keys(mergedContext).length > 0 ? mergedContext : undefined;
|
||||
|
||||
const messageRaw = {
|
||||
key: message.key,
|
||||
pushName:
|
||||
message.pushName ||
|
||||
(message.key.fromMe
|
||||
? 'Você'
|
||||
: message?.participant ||
|
||||
(message.key?.participant ? message.key.participant.split('@')[0] : null)),
|
||||
status: status[message.status],
|
||||
message: { ...message.message },
|
||||
// [REPLACE] antes: contextInfo: contentMsg?.contextInfo,
|
||||
contextInfo: contextInfoFinal,
|
||||
messageType: contentType || 'unknown',
|
||||
messageTimestamp: message.messageTimestamp as number,
|
||||
instanceId: this.instanceId,
|
||||
source: getDevice(message.key.id),
|
||||
};
|
||||
|
||||
if (!messageRaw.status && message.key.fromMe === false) {
|
||||
messageRaw.status = status[3]; // DELIVERED MESSAGE
|
||||
|
Loading…
Reference in New Issue
Block a user