Browse Source

增加会话成员角色缓存

Sand 8 năm trước cách đây
mục cha
commit
28d9954367

+ 8 - 23
src/server/endpoints/users.endpoint.js

@ -10,12 +10,11 @@ let http = require('http');
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 ObjectUtil = require('../util/object.util');
let ControllerUtil = require('../util/controller.util');
let Users = require('../models/user/users');
const APIv1 = require('../include/endpoints').APIv1;
const MODEL_EVENTS = require('../include/commons').MODEL_EVENTS;
/**
 * 登录。用户登录后,更新数据库中的在线状态。
@ -54,9 +53,9 @@ router.get(APIv1.Users.Login, function (req, res) {
    }
    let users = new Users();
    users.login(userId, platform, token, clientId, function (err, result) {
        res.status(200).send(result);
    });
    ControllerUtil.regModelEventHandler(users, res);
    users.login(userId, platform, token, clientId);
});
/**
@ -75,14 +74,7 @@ router.get(APIv1.Users.Logout, function (req, res) {
    }
    let userStatus = new Users();
    userStatus.on(MODEL_EVENTS.OK, function (message) {
        res.status(200).send(message);
    });
    userStatus.on(MODEL_EVENTS.Error, function (message) {
        res.status(500).send(message);
    });
    ControllerUtil.regModelEventHandler(userStatus, res);
    userStatus.logout(userId);
});
@ -99,7 +91,7 @@ router.get(APIv1.Users.Logout, function (req, res) {
router.post(APIv1.Users.UserStatus, function (req, res) {
    let userId = req.param('user_id');
    let status = req.body;
    if (!objectUtil.isJsonObject(status)) {
    if (!ObjectUtil.isJsonObject(status)) {
        throw {httpStatus: 406, message: "Problems parsing json."};
    }
@ -108,14 +100,7 @@ router.post(APIv1.Users.UserStatus, function (req, res) {
    }
    let userStatus = new Users();
    userStatus.on(MODEL_EVENTS.OK, function (message) {
        res.status(200).send(message);
    });
    userStatus.on(MODEL_EVENTS.Error, function (message) {
        res.status(500).send(message);
    });
    ControllerUtil.regModelEventHandler(userStatus, res);
    userStatus.updateStatus(userId, status.status);
});

+ 4 - 2
src/server/models/user/users.js

@ -132,9 +132,8 @@ class Users extends RedisModel {
     *
     * @param userId
     * @param appInBg
     * @param outCallback
     */
    updateAppStatus(userId, appInBg, outCallback) {
    updateAppStatus(userId, appInBg) {
        let self = this;
        redisConn.hsetAsync(self.makeRedisKey(REDIS_KEYS.UserAppStatus, userId), 'app_in_bg', appInBg)
            .then(function (res) {
@ -217,13 +216,16 @@ class Users extends RedisModel {
                                // cache participants
                                let sessionParticipantsKey = self.makeRedisKey(REDIS_KEYS.Participants, sessionId);
                                let sessionParticipantsRoleKey = self.makeRedisKey(REDIS_KEYS.ParticipantsRole, sessionId);
                                ParticipantRepo.findParticipants(sessionId, function (err, participants) {
                                    for (let participant in participants) {
                                        let participantId = participant.participant_id;
                                        let participantRole = participant.participant_role;
                                        let score = new Date().getMilliseconds();
                                        redisConn.multiAsync()
                                            .zaddAsync(sessionParticipantsKey, participantId, score)
                                            .hsetAsync(sessionParticipantsRoleKey, participantId, participantRole)
                                            .execAsync().then(function (res) {
                                        });
                                    }

+ 1 - 1
test/server/endpoints/users.endpoint.Test.js

@ -6,7 +6,7 @@ var APIv1 = require('../../../src/server/include/endpoints').APIv1;
var should = require("should");
var server = require('supertest').agent(testConfig.host);
describe('API: User', function () {
describe('User Endpoint', function () {
    describe('when login with correct params', function () {
        it('should return 200', function (done) {
            var path = APIv1.Users.Base + APIv1.Users.Login + "?user_id=0de7295862dd11e69faffa163e8aee56&token=0PFWlKmLBN9YzhCfFWVgYA&client_id=H6FYbDejks6VjMmW3uH7V6&platform=0";

+ 0 - 12
test/server/models/user/user.Test.js

@ -42,16 +42,4 @@ describe('Users class', function () {
            });
        });
    });
    describe('getUserStatus', function () {
        it('should return user status', function (done) {
            let users = new Users();
            users.getUserStatusAsync('test00000000006').then(function (res) {
                assert.notStrictEqual(res, null);
                if(res !== null) console.log(res);
                done();
            });
        });
    })
});