/** * 独立的发送消息接口 */ "use strict"; let express = require('express'); let router = express.Router(); let ObjectUtil = require('../../util/object.util'); let ControllerUtil = require('../../util/controller.util'); let APIv2 = require('../../include/endpoints').APIv2; let MODEL_EVENTS = require('../../include/commons').MODEL_EVENTS; let Messages = require('../../models/messages/messages'); let WechatClient = require("../../models/client/wechat.client.js"); /** * 发送消息 */ router.post(APIv2.Message.Send, function (req, res) { let payload = req.body; let testing = ObjectUtil.fieldsCheck(payload, "sender_id", "sender_name", "content_type", "content"); if (!testing.pass) { throw {httpStatus: 406, message: testing.message} } // 消息的发送时间由服务端决定 payload.timestamp = new Date((new Date().getTime())); let messages = new Messages(); ControllerUtil.regModelEventHandler(messages, res); messages.sendMessage(payload); }); /** * 发送医生外层socket消息 */ router.post(APIv2.Message.DoctorSystemMessage, function (req, res) { let targetUserId = req.body.targetUserId; let message = req.body.message; if (!targetUserId) { throw {httpStatus: 406, message: 'Missing targetUserId.'}; } if (!message) { throw {httpStatus: 406, message: 'Missing message.'}; } ControllerUtil.regModelEventHandler(WechatClient, res); //推送MDT,医生外层新消息 WechatClient.cloudSendMDTSocketMessageToDoctor(targetUserId,JSON.parse(message),null); }); router.get(APIv2.Message.DataMessage, function (req, res) { let sessionId = req.query.sessionId; let messages = new Messages(); ControllerUtil.regModelEventHandler(messages, res); messages.dataMessage(sessionId); }); router.get(APIv2.Message.CleanMessageLastFetchTimeToRedis, function (req, res) { let sessionId = req.query.sessionId; let userId = req.query.userId; let messages = new Messages(); ControllerUtil.regModelEventHandler(messages, res); messages.cleanMessageLastFetchTime(sessionId,userId); }); module.exports = router;