2 * Broadcast updates to client when the model changes
6 var _ = require('lodash');
7 var User = require('../../models').User;
8 var ChatRoom = require('../../models').ChatRoom;
9 var ChatVisitor = require('../../models').ChatVisitor;
10 var UserHasChatRoom = require('../../models').UserHasChatRoom;
12 exports.register = function (socket) {
13 UserHasChatRoom.afterCreate(function (doc) {
16 UserHasChatRoom.afterDestroy(function (doc) {
17 onRemove(socket, doc);
21 function onSave(socket, doc) {
26 .findById(doc.ChatRoomId, {
29 attributes: ['id', 'email', 'fullname']
32 attributes: ['id', 'email', 'name', 'fullname']
35 .then(function (chatRoom) {
37 _chatRoom.dataValues.ChatMessages = [];
39 console.log('_chatRoom', _chatRoom);
41 var ids = _.pluck(_chatRoom.Users, 'id');
43 ids.forEach(function (id) {
44 if (socket.userId == id) {
45 socket.emit('user_has_chat_room:save', _chatRoom.dataValues)
51 .catch(function (err) {
56 function onRemove(socket, doc) {
57 socket.emit('user_has_chat_room:remove', doc);