90 lines
2.4 KiB
JavaScript
90 lines
2.4 KiB
JavaScript
var UserStore = require('../../../persistence/users');
|
|
var dispatcher = require('../../../util/dispatcher');
|
|
|
|
module.exports = function(app){
|
|
return new Handler(app, app.get('chatService'));
|
|
};
|
|
var Handler = function(app, chatService){
|
|
this.app = app;
|
|
this.chatService = chatService;
|
|
};
|
|
var handler = Handler.prototype;
|
|
|
|
/**
|
|
* Send messages to users in the channel
|
|
*
|
|
* @param {Object} msg message from client
|
|
* @param {Object} session
|
|
* @param {Function} next next stemp callback
|
|
*
|
|
*/
|
|
handler.sendMessage = function(msg, session, next){
|
|
var me = this;
|
|
var tid = session.get('tid');
|
|
var channelService = this.app.get('channelService');
|
|
UserStore.getByAttr('id', session.uid, false, function(e, user){
|
|
if(!user){
|
|
next(null, {
|
|
code : 500,
|
|
error : 'user-not-exist'
|
|
});
|
|
return;
|
|
}
|
|
// target is all users
|
|
if(msg.target == 'table'){
|
|
var channel = channelService.getChannel(tid, true);
|
|
msg.target = '*';
|
|
channel.pushMessage({
|
|
route : 'onChat',
|
|
msg : msg.content,
|
|
username : user.username,
|
|
target : msg.target
|
|
});
|
|
next(null, {
|
|
code : 200,
|
|
route : msg.route
|
|
});
|
|
}else{
|
|
// target is specific user
|
|
me.chatService.pushByPlayerName(msg.target, {
|
|
username : user.username,
|
|
msg : msg.content
|
|
}, function(e){
|
|
if(e){
|
|
return next(null, {
|
|
code : 500,
|
|
error : e
|
|
});
|
|
}
|
|
next(null, {
|
|
code : 200,
|
|
route : msg.route
|
|
});
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Get friend list
|
|
*
|
|
* @param {Object} msg game parameters from client
|
|
* @param {Object} session
|
|
* @param {Function} next next step callback
|
|
*
|
|
*/
|
|
handler.getFriends = function(msg, session, next){
|
|
this.chatService.getFriendList(session.uid, function(e, friends){
|
|
if(e){
|
|
return next(null, {
|
|
code : 500,
|
|
error : e
|
|
});
|
|
}
|
|
next(null, {
|
|
code : 200,
|
|
route : msg.route,
|
|
friends : friends
|
|
});
|
|
});
|
|
}; |