|
@ -8,17 +8,225 @@
|
|
|
|
|
|
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 configFile = require('../include/commons').CONFIG_FILE;
|
|
|
let config = require('../resources/config/' + configFile);
|
|
|
let log = require("../util/log.js");
|
|
|
let objectUtil = require('../util/object.util');
|
|
|
let Sessions = require('../models/sessions/sessions');
|
|
|
let Participants = require('../models/sessions/participants');
|
|
|
const APIv1 = require('../include/endpoints').APIv1;
|
|
|
const CONTENT_TYPES = require('../include/commons').CONTENT_TYPE;
|
|
|
const MAX_INT = require('../include/commons').MAX_INT;
|
|
|
const DEFAULT_PAGE_SIZE = require('../include/commons').DEFAULT_PAGE_SIZE;
|
|
|
|
|
|
let Users = require('../models/user/users');
|
|
|
|
|
|
const APIv1 = require('../include/endpoints').APIv1;
|
|
|
const MODEL_EVENTS = require('../include/commons').MODEL_EVENTS;
|
|
|
/**
|
|
|
* 获取用户的聊天列表
|
|
|
* 请求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.getSessionMessages(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&name=3121&sessionType=2
|
|
|
*/
|
|
|
router.post(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.createSessions(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 sessions = new Sessions();
|
|
|
ControllerUtil.regModelEventHandler(sessions, res);
|
|
|
message.timestamp=new Date();
|
|
|
sessions.saveMessageBySession(message,sessionId);
|
|
|
})
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 发送消息
|
|
|
* 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);
|
|
|
})
|
|
|
|
|
|
router.get(APIv1.Chats)
|
|
|
module.exports = router;
|