|
|
|
@ -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;
|
|
|
|
|
};
|
|
|
|
|