/** * 会话接口。 * * author: Sand * since: 12/15/2016 */ "use strict"; let express = require('express'); let router = express.Router(); let log = require('../../util/log.js'); let ObjectUtil = require("../../util/object.util.js"); let ControllerUtil = require('../../util/controller.util'); let Topics = require('../../models/sessions/topics'); const APIv2 = require('../../include/endpoints').APIv2; /** * 获取用户的聊天列表 */ router.get(APIv2.Sessions.TopicMessages, function (req, res) { let topicId = req.query.topic_id; let startMsgId = req.query.start; let endMsgId = req.query.end; let page = req.query.page; let pagesize = req.query.pagesize; let user = req.query.user; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); topic.getTopicMessages(topicId,user,startMsgId,endMsgId,page,pagesize); }); /** * 获取topic单条记录 */ router.get(APIv2.Sessions.Topic, function (req, res) { let topicId = req.query.topic_id; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); topic.getTopicByTopicId(topicId); }); router.get(APIv2.Sessions.TopicList, function (req, res) { let user = req.query.user; let status = req.query.status; let reply = req.query.reply;//SESSION_TYPES let page = req.query.page; let pagesize = req.query.pagesize; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); let users = user.split(","); topic.findAllByUserAndReplyAndStatus(users,reply,status,page,pagesize); }); router.get(APIv2.Sessions.HealthTopicList, function (req, res) { let user = req.query.user; let status = req.query.status; let reply = req.query.reply;//SESSION_TYPES let page = req.query.page; let pagesize = req.query.pagesize; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); let users = user.split(","); topic.findAllByUserAndReplyAndStatusHealthTopic(users,reply,status,page,pagesize); }); router.get(APIv2.Sessions.TopicListByType,function (req,res) { let user = req.query.user; let status = req.query.status; let type = req.query.type; let reply = req.query.reply;//SESSION_TYPES let page = req.query.page; let pagesize = req.query.pagesize; let patientName = req.query.patientName; let startTime = req.query.startTime; let endTime = req.query.endTime; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); let users = user.split(","); topic.findAllTopicByType(users,reply,status,type,patientName,startTime,endTime,page,pagesize); }); router.get(APIv2.Sessions.TopicListCountByType,function (req,res) { let user = req.query.user; let status = req.query.status; let type = req.query.type; let reply = req.query.reply;//SESSION_TYPES let patientName = req.query.patientName; let startTime = req.query.startTime; let endTime = req.query.endTime; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); let users = user.split(","); topic.topicListCountByType(users,reply,status,type,patientName,startTime,endTime); }); router.get(APIv2.Sessions.HealthTeamTopicList, function (req, res) { let user = req.query.user; let status = req.query.status; let adminTeamCode = req.query.adminTeamCode; let reply = req.query.reply;//SESSION_TYPES let page = req.query.page; let pagesize = req.query.pagesize; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); let users = user.split(","); topic.findAllByUserAndReplyAndStatusHealthTeamTopic(users,reply,status,adminTeamCode,page,pagesize); }); router.get(APIv2.Sessions.TopicReplyCount, function (req, res) { let user = req.query.user; let status = req.query.status; let reply = req.query.reply; let adminTeamCode = req.query.adminTeamCode; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); let users = user.split(","); topic.findReplyCount(users,reply,status,adminTeamCode); }); router.post(APIv2.Sessions.Topics, function (req, res) { let payload = req.body; let testing = ObjectUtil.fieldsCheck(payload, "topic_id", "topic_name", "participants", "messages", "session_type"); if (!testing.pass) { throw {httpStatus: 406, message: testing.message} } let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); topic.createTopic(payload.topic_name, payload.topic_id, payload.session_id, JSON.parse(payload.participants), JSON.parse(payload.messages),payload.session_type); }); router.put(APIv2.Sessions.Topics, function (req, res) { let payload = req.body; let topicId = payload.topic_id; let jsonValue = payload.data; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); topic.updateTopic(topicId, JSON.parse(jsonValue)); }); router.get(APIv2.Sessions.TopicEnded, function (req, res) { let sessionId = req.params.session_id; let topicId = req.params.topic_id; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); topic.isTopicEnded(sessionId, topicId, null); }); router.post(APIv2.Sessions.TopicEnded, function (req, res) { let payload = req.body; let endUser = payload.end_user; let endUserName = payload.end_user_name; let topicId = payload.topic_id; let agent = payload.agent; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); topic.endTopic(topicId, endUser, endUserName,agent); }); router.post(APIv2.Sessions.TopicInto, function (req, res) { let payload = req.body; let intoUser = payload.into_user; let senderId = payload.sender_id; let intoUserName = payload.into_user_name; let topicId = payload.topic_id; let topic = new Topics(); ControllerUtil.regModelEventHandler(topic, res); topic.intoTopic(topicId, intoUser, intoUserName,senderId,payload.content); }); module.exports = router;