123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- /**
- * 会话接口。
- *
- * author: Sand
- * since: 12/15/2016
- */
- "use strict";
- let express = require('express');
- let router = express.Router();
- let http = require('http');
- let log = require('../util/log.js');
- let ObjectUtil = require("../util/object.util.js");
- let ControllerUtil = require('../util/controller.util');
- let Sessions = require('../models/sessions/sessions');
- let Participants = require('../models/sessions/participants');
- const APIv1 = require('../include/endpoints').APIv1;
- /**
- * 获取用户的聊天列表
- * 请求URL /sessions?page=0&pagesize=10&user=3121
- */
- router.get(APIv1.Sessions.SessionList,function(req,res){
- let page = req.query.page;
- let pagesize = req.query.pagesize;
- let user = req.query.user;
- if (!page) {
- throw {httpStatus: 406, message: 'Missing page.'};
- }
- if (!pagesize) {
- throw {httpStatus: 406, message: 'Missing pagesize.'};
- }
- if (!user) {
- throw {httpStatus: 406, message: 'Missing user.'};
- }
- let sessions = new Sessions();
- ControllerUtil.regModelEventHandler(sessions, res);
- sessions.getUserSessions(user,page,pagesize);
- });
- /**
- * 获取用户的聊天信息列表
- * 请求URL /messages?page=0&pagesize=10&user=3121&sessionId=testsessionmsg1
- */
- router.get(APIv1.Sessions.MessageList,function(req,res){
- let page = req.query.page;
- let pagesize = req.query.pagesize;
- let user = req.query.user;
- let sessionId =req.query.sessionId;
- if (!page) {
- throw {httpStatus: 406, message: 'Missing page.'};
- }
- if (!pagesize) {
- throw {httpStatus: 406, message: 'Missing pagesize.'};
- }
- if (!user) {
- throw {httpStatus: 406, message: 'Missing user.'};
- }
- if (!sessionId) {
- throw {httpStatus: 406, message: 'Missing sessionId.'};
- }
- let sessions = new Sessions();
- ControllerUtil.regModelEventHandler(sessions, res);
- sessions.getMessages(sessionId,user,page,pagesize);
- });
- /**
- * 某个聊天记录置顶操作
- * 请求URL /stick?user=3121&sessionId=testsessionmsg1
- */
- router.post(APIv1.Sessions.StickSession,function(req,res){
- let user = req.query.user;
- let sessionId =req.query.sessionId;
- if (!user) {
- throw {httpStatus: 406, message: 'Missing user.'};
- }
- if (!sessionId) {
- throw {httpStatus: 406, message: 'Missing sessionId.'};
- }
- let sessions = new Sessions();
- ControllerUtil.regModelEventHandler(sessions, res);
- sessions.stickSession(sessionId,user);
- });
- /**
- * 取消置顶
- * 请求URL /cancelStick?user=3121&sessionId=testsessionmsg1
- */
- router.post(APIv1.Sessions.UnStickSession,function(req,res){
- let user = req.query.user;
- let sessionId =req.query.sessionId;
- if (!user) {
- throw {httpStatus: 406, message: 'Missing user.'};
- }
- if (!sessionId) {
- throw {httpStatus: 406, message: 'Missing sessionId.'};
- }
- let sessions = new Sessions();
- ControllerUtil.regModelEventHandler(sessions, res);
- sessions.cancelStickSession(sessionId,user);
- });
- /**
- * 创建讨论组
- * sessionType:1表示MUC会话,2表示P2P,3表示群会话,4表示临时讨论组
- * users 讨论组包含的用户标示
- * sessionId 会话ID
- * 请求URL /create?sessionId=0&users={10:1,20:1}&name=3121&sessionType=2
- */
- router.get(APIv1.Sessions.CreateSession,function(req,res){
- let sessionId = req.query.sessionId;
- let users = req.query.users;
- let name = req.query.name;
- let sessionType = req.query.sessionType;
- if (!sessionId) {
- throw {httpStatus: 406, message: 'Missing sessionId.'};
- }
- if (!users) {
- throw {httpStatus: 406, message: 'Missing users.'};
- }
- if (!name) {
- throw {httpStatus: 406, message: 'Missing name.'};
- }
- if (!sessionType) {
- throw {httpStatus: 406, message: 'Missing sessionType.'};
- }
- let sessions = new Sessions();
- ControllerUtil.regModelEventHandler(sessions, res);
- sessions.createSession(sessionId,name,sessionType,users);
- });
- /**
- * 发送消息
- * message:消息发送对象
- * sessionId 会话ID
- */
- router.post(APIv1.Sessions.SendMsg,function(req,res){
- let message = req.body;
- if (!ObjectUtil.isJsonObject(message)) {
- throw {httpStatus: 406, message: 'Problems parsing JSON.'}
- }
- // 字段判断
- let testing = ObjectUtil.fieldsCheck(message, "senderId", "senderName", "contentType", "content");
- if (!testing.pass) {
- throw {httpStatus: 406, message: testing.message}
- }
- let sessionId = req.query.sessionId;
- if (!sessionId) {
- throw {httpStatus: 406, message: 'Missing sessionId.'};
- }
- let type = req.query.type;
- if (!type) {
- throw {httpStatus: 406, message: 'Missing type.'};
- }
- let sessions = new Sessions();
- ControllerUtil.regModelEventHandler(sessions, res);
- message.timestamp=new Date();
- sessions.saveMessageBySession(message,sessionId,type);
- });
- /**
- * 发送消息
- * message:消息发送对象
- * sessionId 会话ID
- */
- router.post(APIv1.Sessions.SendMsg,function(req,res){
- let message = req.body;
- if (!ObjectUtil.isJsonObject(message)) {
- throw {httpStatus: 406, message: 'Problems parsing JSON.'}
- }
- // 字段判断
- let testing = ObjectUtil.fieldsCheck(message, "senderId", "senderName", "contentType", "content");
- if (!testing.pass) {
- throw {httpStatus: 406, message: testing.message}
- }
- let sessionId = req.query.sessionId;
- if (!sessionId) {
- throw {httpStatus: 406, message: 'Missing sessionId.'};
- }
- let sessions = new Sessions();
- ControllerUtil.regModelEventHandler(sessions, res);
- message.timestamp=new Date();
- sessions.saveMessageBySession(message,sessionId);
- });
- /**
- * 移除人员
- * user:移除的人员
- * sessionId 会话ID
- */
- router.post(APIv1.Sessions.RemoveSessionUser,function(req,res){
- let user = req.query.user;
- if (!user) {
- throw {httpStatus: 406, message: 'Missing user.'};
- }
- let sessionId = req.query.sessionId;
- if (!sessionId) {
- throw {httpStatus: 406, message: 'Missing sessionId.'};
- }
- let participants = new Participants();
- ControllerUtil.regModelEventHandler(sessions, res);
- participants.deleteUser(sessionId,user);
- });
- /**
- * 移除人员
- * user:移除的人员
- * sessionId 会话ID
- */
- router.post(APIv1.Sessions.PushSessionUser,function(req,res){
- let user = req.query.user;
- if (!user) {
- throw {httpStatus: 406, message: 'Missing user.'};
- }
- let sessionId = req.query.sessionId;
- if (!sessionId) {
- throw {httpStatus: 406, message: 'Missing sessionId.'};
- }
- let participants = new Participants();
- ControllerUtil.regModelEventHandler(sessions, res);
- participants.pushUser(sessionId,user);
- });
- module.exports = router;
|