topic.endpoint.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. /**
  2. * 会话接口。
  3. *
  4. * author: Sand
  5. * since: 12/15/2016
  6. */
  7. "use strict";
  8. let express = require('express');
  9. let router = express.Router();
  10. let log = require('../../util/log.js');
  11. let ObjectUtil = require("../../util/object.util.js");
  12. let ControllerUtil = require('../../util/controller.util');
  13. let Topics = require('../../models/sessions/topics');
  14. const APIv2 = require('../../include/endpoints').APIv2;
  15. /**
  16. * 获取用户的聊天列表
  17. */
  18. router.get(APIv2.Sessions.TopicMessages, function (req, res) {
  19. let topicId = req.query.topic_id;
  20. let startMsgId = req.query.start;
  21. let endMsgId = req.query.end;
  22. let page = req.query.page;
  23. let pagesize = req.query.pagesize;
  24. let user = req.query.user;
  25. let topic = new Topics();
  26. ControllerUtil.regModelEventHandler(topic, res);
  27. topic.getTopicMessages(topicId,user,startMsgId,endMsgId,page,pagesize);
  28. });
  29. /**
  30. * 获取topic单条记录
  31. */
  32. router.get(APIv2.Sessions.Topic, function (req, res) {
  33. let topicId = req.query.topic_id;
  34. let topic = new Topics();
  35. ControllerUtil.regModelEventHandler(topic, res);
  36. topic.getTopicByTopicId(topicId);
  37. });
  38. router.get(APIv2.Sessions.TopicList, function (req, res) {
  39. let user = req.query.user;
  40. let status = req.query.status;
  41. let reply = req.query.reply;//SESSION_TYPES
  42. let page = req.query.page;
  43. let pagesize = req.query.pagesize;
  44. let topic = new Topics();
  45. ControllerUtil.regModelEventHandler(topic, res);
  46. let users = user.split(",");
  47. topic.findAllByUserAndReplyAndStatus(users,reply,status,page,pagesize);
  48. });
  49. router.get(APIv2.Sessions.HealthTopicList, function (req, res) {
  50. let user = req.query.user;
  51. let status = req.query.status;
  52. let reply = req.query.reply;//SESSION_TYPES
  53. let page = req.query.page;
  54. let pagesize = req.query.pagesize;
  55. let topic = new Topics();
  56. ControllerUtil.regModelEventHandler(topic, res);
  57. let users = user.split(",");
  58. topic.findAllByUserAndReplyAndStatusHealthTopic(users,reply,status,page,pagesize);
  59. });
  60. router.get(APIv2.Sessions.HealthTeamTopicList, function (req, res) {
  61. let user = req.query.user;
  62. let status = req.query.status;
  63. let adminTeamCode = req.query.adminTeamCode;
  64. let reply = req.query.reply;//SESSION_TYPES
  65. let page = req.query.page;
  66. let pagesize = req.query.pagesize;
  67. let topic = new Topics();
  68. ControllerUtil.regModelEventHandler(topic, res);
  69. let users = user.split(",");
  70. topic.findAllByUserAndReplyAndStatusHealthTeamTopic(users,reply,status,adminTeamCode,page,pagesize);
  71. });
  72. router.get(APIv2.Sessions.TopicReplyCount, function (req, res) {
  73. let user = req.query.user;
  74. let status = req.query.status;
  75. let reply = req.query.reply;
  76. let adminTeamCode = req.query.adminTeamCode;
  77. let topic = new Topics();
  78. ControllerUtil.regModelEventHandler(topic, res);
  79. let users = user.split(",");
  80. topic.findReplyCount(users,reply,status,adminTeamCode);
  81. });
  82. router.post(APIv2.Sessions.Topics, function (req, res) {
  83. let payload = req.body;
  84. let testing = ObjectUtil.fieldsCheck(payload, "topic_id", "topic_name", "participants", "messages", "session_type");
  85. if (!testing.pass) {
  86. throw {httpStatus: 406, message: testing.message}
  87. }
  88. let topic = new Topics();
  89. ControllerUtil.regModelEventHandler(topic, res);
  90. topic.createTopic(payload.topic_name, payload.topic_id, payload.session_id, JSON.parse(payload.participants), JSON.parse(payload.messages),payload.session_type);
  91. });
  92. router.put(APIv2.Sessions.Topics, function (req, res) {
  93. let payload = req.body;
  94. let topicId = payload.topic_id;
  95. let jsonValue = payload.data;
  96. let topic = new Topics();
  97. ControllerUtil.regModelEventHandler(topic, res);
  98. topic.updateTopic(topicId, JSON.parse(jsonValue));
  99. });
  100. router.get(APIv2.Sessions.TopicEnded, function (req, res) {
  101. let sessionId = req.params.session_id;
  102. let topicId = req.params.topic_id;
  103. let topic = new Topics();
  104. ControllerUtil.regModelEventHandler(topic, res);
  105. topic.isTopicEnded(sessionId, topicId, null);
  106. });
  107. router.post(APIv2.Sessions.TopicEnded, function (req, res) {
  108. let payload = req.body;
  109. let endUser = payload.end_user;
  110. let endUserName = payload.end_user_name;
  111. let topicId = payload.topic_id;
  112. let agent = payload.agent;
  113. let topic = new Topics();
  114. ControllerUtil.regModelEventHandler(topic, res);
  115. topic.endTopic(topicId, endUser, endUserName,agent);
  116. });
  117. router.post(APIv2.Sessions.TopicInto, function (req, res) {
  118. let payload = req.body;
  119. let intoUser = payload.into_user;
  120. let senderId = payload.sender_id;
  121. let intoUserName = payload.into_user_name;
  122. let topicId = payload.topic_id;
  123. let topic = new Topics();
  124. ControllerUtil.regModelEventHandler(topic, res);
  125. topic.intoTopic(topicId, intoUser, intoUserName,senderId,payload.content);
  126. });
  127. module.exports = router;