topic.endpoint.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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 type = req.query.type;//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. topic.getTopics(user,status,page,pagesize,type);
  47. });
  48. router.post(APIv2.Sessions.Topics, function (req, res) {
  49. let payload = req.body;
  50. let testing = ObjectUtil.fieldsCheck(payload, "topic_id", "topic_name", "participants", "messages", "session_type");
  51. if (!testing.pass) {
  52. throw {httpStatus: 406, message: testing.message}
  53. }
  54. let topic = new Topics();
  55. ControllerUtil.regModelEventHandler(topic, res);
  56. topic.createTopic(payload.topic_name, payload.topic_id, payload.session_id, JSON.parse(payload.participants), JSON.parse(payload.messages),payload.session_type);
  57. });
  58. router.put(APIv2.Sessions.Topics, function (req, res) {
  59. let payload = req.body;
  60. let topicId = payload.topic_id;
  61. let jsonValue = payload.data;
  62. let topic = new Topics();
  63. ControllerUtil.regModelEventHandler(topic, res);
  64. topic.updateTopic(topicId, JSON.parse(jsonValue));
  65. });
  66. router.get(APIv2.Sessions.TopicEnded, function (req, res) {
  67. let sessionId = req.params.session_id;
  68. let topicId = req.params.topic_id;
  69. let topic = new Topics();
  70. ControllerUtil.regModelEventHandler(topic, res);
  71. topic.isTopicEnded(sessionId, topicId, null);
  72. });
  73. router.post(APIv2.Sessions.TopicEnded, function (req, res) {
  74. let payload = req.body;
  75. let endUser = payload.end_user;
  76. let endUserName = payload.end_user_name;
  77. let topicId = payload.topic_id;
  78. let topic = new Topics();
  79. ControllerUtil.regModelEventHandler(topic, res);
  80. topic.endTopic(topicId, endUser, endUserName);
  81. });
  82. module.exports = router;