From 9eee7d04eab5f2d7beb2e6871899a681571d9898 Mon Sep 17 00:00:00 2001 From: Lei OT Date: Thu, 9 Jan 2025 16:07:41 +0800 Subject: [PATCH] fix(wai): webhook status --- wai-server/core/handler/whatsappHandler.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/wai-server/core/handler/whatsappHandler.js b/wai-server/core/handler/whatsappHandler.js index 98b78c7..b86e21d 100644 --- a/wai-server/core/handler/whatsappHandler.js +++ b/wai-server/core/handler/whatsappHandler.js @@ -71,6 +71,7 @@ const uniqueMsgId = msg => (msg.id && msg.direction ? `${directionPrefix[msg.dir */ const webhookBodyBuilder = (messageData, messageType) => { const defaultContent = { id: '', from: '', to: '', externalId: '', type: '', direction: '', status: '' }; + const status = messageData.direction === 'inbound' ? '' : statusMapped?.[messageData.status] || messageData.status || ''; const message = { id: `evt_${generateId().replace(/-/g, '')}`, type: eventTypeMapped[messageType], @@ -83,12 +84,12 @@ const webhookBodyBuilder = (messageData, messageType) => { waiMessage: { ...defaultContent, ...messageData, - ...(messageData.updateTime ? { [timeField[messageData.status]]: messageData.updateTime } : {}), + ...(messageData.updateTime && !isEmpty(status) ? { [timeField[messageData.status]]: messageData.updateTime } : {}), type: messageData.type || messageData.msgtype || '', id: uniqueMsgId(messageData) || messageData.id || generateId(), wamid: messageData.id || '', // direction: directionField[messageType], - status: messageData.direction === 'inbound' ? '' : statusMapped?.[messageData.status] || messageData.status || '', + status, externalId: messageData?.externalId || '', }, }; @@ -226,7 +227,7 @@ const setupMessageHandler = async () => { const msgRow = await upsertOutboundMessage({ ...upsertFields, ...readyUpsert, ...typeField, ...msgOrigin }, targetUpsert); if (_type !== 'unresolvable') { // 把内容加上, 否则前端没显示 - await callWebhook(webhookBodyFill(webhookBody, { ...msgRow, status: msgRow.msg_status })); + await callWebhook(webhookBodyFill(webhookBody, { ...msgRow, status: msgRow.msg_status || '' })); } } catch (error) { logger.error({ messageData, error }, 'error call webhook');