Built motion from commit 5e31ea4.|0.0.32
[motion.git] / server / api / report_chat / report_chat.socket.js
1 /**
2  * Broadcast updates to client when the model changes
3  */
4
5 'use strict';
6
7 var ReportChat = require('../../models').ReportChat;
8
9 exports.register = function (socket) {
10   ReportChat.afterCreate(function (doc) {
11     onSave(socket, doc);
12   });
13   ReportChat.afterUpdate(function (doc) {
14     onUpdate(socket, doc);
15   });
16   ReportChat.afterDestroy(function (doc) {
17     onRemove(socket, doc);
18   });
19 }
20
21 function onSave(socket, doc, cb) {
22   if (socket.name === doc.membername || socket.role === 'admin') {
23     socket.emit('report_chat:save', doc);
24   }
25 }
26
27 function onUpdate(socket, doc, cb) {
28   if (socket.name === doc.membername || socket.role === 'admin') {
29     if (doc.changed('agentid')) {
30       socket.emit('report_chat:assignment', doc);
31     } else {
32       socket.emit('report_chat:update', doc);
33     }
34   }
35 }
36
37 function onRemove(socket, doc, cb) {
38   socket.emit('report_chat:remove', doc);
39 }