mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2026-03-21 20:18:40 -06:00
Enhance getTypeMessage to include orderMessage
Added support for orderMessage in getTypeMessage method and updated message formatting for orders.
This commit is contained in:
@@ -1758,41 +1758,60 @@ export class ChatwootService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private getTypeMessage(msg: any) {
|
private getTypeMessage(msg: any) {
|
||||||
const types = {
|
const types = {
|
||||||
conversation: msg.conversation,
|
conversation: msg.conversation,
|
||||||
imageMessage: msg.imageMessage?.caption,
|
imageMessage: msg.imageMessage?.caption,
|
||||||
videoMessage: msg.videoMessage?.caption,
|
videoMessage: msg.videoMessage?.caption,
|
||||||
extendedTextMessage: msg.extendedTextMessage?.text,
|
extendedTextMessage: msg.extendedTextMessage?.text,
|
||||||
messageContextInfo: msg.messageContextInfo?.stanzaId,
|
messageContextInfo: msg.messageContextInfo?.stanzaId,
|
||||||
stickerMessage: undefined,
|
stickerMessage: undefined,
|
||||||
documentMessage: msg.documentMessage?.caption,
|
documentMessage: msg.documentMessage?.caption,
|
||||||
documentWithCaptionMessage: msg.documentWithCaptionMessage?.message?.documentMessage?.caption,
|
documentWithCaptionMessage: msg.documentWithCaptionMessage?.message?.documentMessage?.caption,
|
||||||
audioMessage: msg.audioMessage ? (msg.audioMessage.caption ?? '') : undefined,
|
audioMessage: msg.audioMessage ? (msg.audioMessage.caption ?? '') : undefined,
|
||||||
contactMessage: msg.contactMessage?.vcard,
|
contactMessage: msg.contactMessage?.vcard,
|
||||||
contactsArrayMessage: msg.contactsArrayMessage,
|
contactsArrayMessage: msg.contactsArrayMessage,
|
||||||
locationMessage: msg.locationMessage,
|
locationMessage: msg.locationMessage,
|
||||||
liveLocationMessage: msg.liveLocationMessage,
|
liveLocationMessage: msg.liveLocationMessage,
|
||||||
listMessage: msg.listMessage,
|
listMessage: msg.listMessage,
|
||||||
listResponseMessage: msg.listResponseMessage,
|
listResponseMessage: msg.listResponseMessage,
|
||||||
viewOnceMessageV2:
|
// Adicione a linha abaixo. Atenção à vírgula na linha de cima!
|
||||||
msg?.message?.viewOnceMessageV2?.message?.imageMessage?.url ||
|
orderMessage: msg.orderMessage,
|
||||||
msg?.message?.viewOnceMessageV2?.message?.videoMessage?.url ||
|
viewOnceMessageV2:
|
||||||
msg?.message?.viewOnceMessageV2?.message?.audioMessage?.url,
|
msg?.message?.viewOnceMessageV2?.message?.imageMessage?.url ||
|
||||||
};
|
msg?.message?.viewOnceMessageV2?.message?.videoMessage?.url ||
|
||||||
|
msg?.message?.viewOnceMessageV2?.message?.audioMessage?.url,
|
||||||
|
};
|
||||||
|
|
||||||
return types;
|
return types;
|
||||||
}
|
}
|
||||||
|
|
||||||
private getMessageContent(types: any) {
|
private getMessageContent(types: any) {
|
||||||
const typeKey = Object.keys(types).find((key) => types[key] !== undefined);
|
const typeKey = Object.keys(types).find((key) => types[key] !== undefined);
|
||||||
|
|
||||||
let result = typeKey ? types[typeKey] : undefined;
|
let result = typeKey ? types[typeKey] : undefined;
|
||||||
|
|
||||||
// Remove externalAdReplyBody| in Chatwoot (Already Have)
|
// Remove externalAdReplyBody| in Chatwoot
|
||||||
if (result && typeof result === 'string' && result.includes('externalAdReplyBody|')) {
|
if (result && typeof result === 'string' && result.includes('externalAdReplyBody|')) {
|
||||||
result = result.split('externalAdReplyBody|').filter(Boolean).join('');
|
result = result.split('externalAdReplyBody|').filter(Boolean).join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tratamento de Pedidos do Catálogo
|
||||||
|
if (typeKey === 'orderMessage') {
|
||||||
|
const amount = result.totalAmount1000;
|
||||||
|
// Converte o objeto Long para número antes da divisão
|
||||||
|
const rawPrice = (Long.isLong(amount) ? amount.toNumber() : amount) || 0;
|
||||||
|
const price = (rawPrice / 1000).toLocaleString('pt-BR', {
|
||||||
|
style: 'currency',
|
||||||
|
currency: result.totalCurrencyCode || 'BRL',
|
||||||
|
});
|
||||||
|
|
||||||
|
return `🛒 *NOVO PEDIDO NO CATÁLOGO*\n\n` +
|
||||||
|
`*Produto:* ${result.orderTitle}\n` +
|
||||||
|
`*Valor:* ${price}\n` +
|
||||||
|
`*ID:* ${result.orderId}\n\n` +
|
||||||
|
`_Atenda agora para finalizar a venda!_`;
|
||||||
|
}
|
||||||
|
|
||||||
if (typeKey === 'locationMessage' || typeKey === 'liveLocationMessage') {
|
if (typeKey === 'locationMessage' || typeKey === 'liveLocationMessage') {
|
||||||
const latitude = result.degreesLatitude;
|
const latitude = result.degreesLatitude;
|
||||||
const longitude = result.degreesLongitude;
|
const longitude = result.degreesLongitude;
|
||||||
|
|||||||
Reference in New Issue
Block a user