perf(wai): message id + `to`

dev/supplier-email-drawer
Lei OT 6 months ago
parent 7c9ea1e671
commit 997f5a3174

@ -25,6 +25,8 @@ const statusMapped = { saved: 'accepted', pending: 'accepted', sent: 'sent', del
const directionField = { 'message:received': 'inbound', 'message:updated': 'outbound' };
const directionPrefix = { inbound: 'in_', outbound: 'out_' };
const uniqueMsgId = (msg) => `${directionPrefix[msg.direction]}${msg.to.replace('+', '')}_${msg.id}`;
/**
* @returns {Object} webhookBody
*/
@ -43,7 +45,7 @@ const webhookBodyBuilder = (messageData, messageType) => {
...defaultContent,
...messageData,
...(messageData.updateTime ? { [timeField[messageData.status]]: messageData.updateTime } : {}),
id: messageData.id && messageData.direction ? `${directionPrefix[messageData.direction]}${messageData.id}` : (messageData.id || generateId()),
id: messageData.id && messageData.direction ? uniqueMsgId(messageData) : (messageData.id || generateId()),
wamid: messageData.id || '',
// direction: directionField[messageType],
status: statusMapped?.[messageData.status] || messageData.status || '',
@ -145,12 +147,13 @@ const setupMessageHandler = () => {
try {
const now = new Date(new Date().getTime() + 60 * 60 * 1000).toISOString();
const savedId = `${directionPrefix[messageData.direction]}${messageData.id}`;
const savedId = uniqueMsgId(messageData);
const targetUpsert = messageData.externalId ? { actionId: messageData.externalId } : { id: savedId };
const savedMsg = await getOutboundMessage(targetUpsert);
const bixFields = pick(savedMsg, ['actionId', 'externalId']);
logger.info('message evt\n', eventName, messageData, savedMsg);
const typeField = { msgtype: messageData?.type || savedMsg?.msgtype || 'text' }; // fix: type 空
const _type = messageData?.type || savedMsg?.msgtype || 'text';
const typeField = { msgtype: _type }; // fix: type 空
const webhookBody = webhookBodyBuilder({ ...messageData, ...bixFields, ...typeField }, eventName);
const { waiMessage } = webhookBody;
@ -165,7 +168,7 @@ const setupMessageHandler = () => {
// todo: 现在只能收text 消息, 后续再加其他类型
const msgRow = await upsertOutboundMessage(
{ ...timeFields, ...upsertFields, ...pusher, ...contentFields, ...record, ...typeField, message_origin: savedMsg?.message_origin || JSON.stringify(messageData) },
{ ...timeFields, ...upsertFields, ...pusher, ...contentFields, ...record, type: _type, message_origin: savedMsg?.message_origin || JSON.stringify(messageData) },
targetUpsert,
);
// console.log('upsert=========================', upsert);

Loading…
Cancel
Save