123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- /**
- * 会话接口。
- *
- * 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;
|