const generateId = require('./../../utils/generateId.util'); const whatsappEvents = require('../emitter'); const { callWebhook } = require('../webhook'); const logger = console; const eventTypeMapped = { 'message:received': 'wai.message.received', 'message:updated': 'wai.message.updated', }; const webhookBodyBuilder = (messageData, messageType) => { const message = { id: `evt_${generateId().replace(/-/g, '')}`, type: eventTypeMapped[messageType], apiVersion: 'v2', webhooksource: 'wai', createTime: new Date(new Date().getTime() + 8 * 60 * 60 * 1000).toISOString(), // GMT +8 waiMessage: messageData, }; return message; }; function setupMessageHandler() { whatsappEvents.on('message:received', async messageData => { try { const x = webhookBodyBuilder(messageData, 'message:received'); await callWebhook(x); } catch (error) { logger.error({ messageData, error }, 'error call webhook'); } }); whatsappEvents.on('message:updated', async messageData => { try { const x = webhookBodyBuilder(messageData, 'message:updated'); await callWebhook(x); } catch (error) { logger.error({ messageData, error }, 'error call webhook'); } }); } module.exports = { setupMessageHandler };