diff --git a/wai-server/api/messages/message.controller.js b/wai-server/api/messages/message.controller.js index b153516..a1e0505 100644 --- a/wai-server/api/messages/message.controller.js +++ b/wai-server/api/messages/message.controller.js @@ -22,7 +22,7 @@ exports.sendText = async ctx => { return; } const wsToSend = sessionService.getSession(from); - console.log('find wsToSend', wsToSend) + // console.log('find wsToSend', wsToSend) if (!wsToSend) { ctx.assert(wsToSend, 400, 'Session not found'); // 404 return; @@ -30,7 +30,7 @@ exports.sendText = async ctx => { // return wsToSend; try { await wsToSend.sendTextMessage(to, content); - return { wsToSend, ret: 'Message sent successfully' }; + return 'Message sent successfully'; // { wsToSend, ret: 'Message sent successfully' }; } catch (error) { console.error('Error sending message:', error); ctx.assert(null, 500, 'Failed to send message'); diff --git a/wai-server/core/services/whatsappHandler.js b/wai-server/core/services/whatsappHandler.js index da7b404..f0b7cd1 100644 --- a/wai-server/core/services/whatsappHandler.js +++ b/wai-server/core/services/whatsappHandler.js @@ -11,19 +11,25 @@ const logger = console; const connectionEventNames = ['connection:connect', 'connection:open', 'connection:close']; const messageEventNames = ['message:received', 'message:updated']; -const eeventTypeMapped = { +const eventTypeMapped = { 'message:received': 'wai.message.received', 'message:updated': 'wai.message.updated', }; - +const timeField = { sent: 'sendTime', delivered: 'deliverTime', read: 'readTime' }; +const directionField = { 'message:received': 'inbound', 'message:updated': 'outbound' }; const webhookBodyBuilder = (messageData, messageType) => { const message = { id: `evt_${generateId().replace(/-/g, '')}`, - type: eeventTypeMapped[messageType], + type: eventTypeMapped[messageType], apiVersion: 'v2', webhooksource: 'wai', createTime: new Date(new Date().getTime() + 8 * 60 * 60 * 1000).toISOString(), // GMT +8 - waiMessage: messageData, + waiMessage: { + ...messageData, + ...(messageData.updateTime ? { [timeField[messageData.status]]: messageData.updateTime } : {}), + direction: directionField[messageType], + externalId: '', // todo: + }, }; return message; };