|
|
|
@ -8,10 +8,10 @@ const { callWebhook } = require('../webhook');
|
|
|
|
|
const { sessionStore } = require('..');
|
|
|
|
|
const { createWhatsApp } = require('../../core/baileys');
|
|
|
|
|
const { updateConnection, addCurrentConnection, resetConnection, getConnection } = require('../../services/connections.service');
|
|
|
|
|
const { getOutboundMessage, upsertOutboundMessage } = require('../../services/outbound_messages.service');
|
|
|
|
|
const { getOutboundMessage, upsertOutboundMessage, createOutboundMessage } = require('../../services/outbound_messages.service');
|
|
|
|
|
const { objectMapper, pick, isEmpty, omitEmpty } = require('../../utils/commons.util');
|
|
|
|
|
const { logger, getUserLogger } = require('../../utils/logger.util');
|
|
|
|
|
const { DbData, waiContentToDB, uploadMediaFile } = require('../../helper/wai.msg.helper');
|
|
|
|
|
const { DbData, waiContentToDB, uploadMediaFile, ctxToSendBuilder, ctxToDB } = require('../../helper/wai.msg.helper');
|
|
|
|
|
|
|
|
|
|
const connectionEventNames = ['connection:connect', 'connection:open', 'connection:close'];
|
|
|
|
|
const messageEventNames = ['message:received', 'message:updated'];
|
|
|
|
@ -227,6 +227,9 @@ const setupMessageHandler = async () => {
|
|
|
|
|
|
|
|
|
|
const readyUpsert = omitEmpty({ ...timeFields, ...pusher, ...waiContentFieldsToDB, ...record });
|
|
|
|
|
const msgRow = await upsertOutboundMessage({ ...upsertFields, ...readyUpsert, ...typeField, ...msgOrigin }, targetUpsert);
|
|
|
|
|
|
|
|
|
|
whatsappEvents.emit(`user:${eventName}`, msgRow);
|
|
|
|
|
|
|
|
|
|
if (_type !== 'unresolvable') {
|
|
|
|
|
// 把内容加上, 否则前端没显示
|
|
|
|
|
await callWebhook(webhookBodyFill(webhookBody, { ...msgRow, status: msgRow.msg_status || '' }));
|
|
|
|
@ -254,6 +257,18 @@ function setupWhatsappHandler() {
|
|
|
|
|
setupMessageHandler();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 发送消息
|
|
|
|
|
* @param {*} _data { from, to, msgtype, msgcontent: { body, image, }, actionId }
|
|
|
|
|
*/
|
|
|
|
|
async function sendMessage(_data) {
|
|
|
|
|
const { from } = _data;
|
|
|
|
|
const toUpsert = ctxToDB(_data);
|
|
|
|
|
await createOutboundMessage({ ...toUpsert });
|
|
|
|
|
const messagePayload = ctxToSendBuilder(_data);
|
|
|
|
|
whatsappEvents.emit('request.' + from + '.send.message', messagePayload);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 登出: 当前服务的所有连接
|
|
|
|
|
*/
|
|
|
|
@ -275,4 +290,4 @@ async function loginCurrentConnections() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = { setupWhatsappHandler, resetCurrentConnections, loginCurrentConnections };
|
|
|
|
|
module.exports = { setupWhatsappHandler, resetCurrentConnections, loginCurrentConnections, sendMessage };
|
|
|
|
|