4039980d8f2d668c91034dd620a38bb1ae98b34b
[motion.git] / server / api / mail_room / mail_room.socket.js
1 /**
2  * Broadcast updates to client when the model changes
3  */
4
5 'use strict';
6
7
8 var MailMessage = require('../../models').MailMessage;
9 var MailRoom = require('../../models').MailRoom;
10 var User = require('../../models').User;
11
12 exports.register = function(socket) {
13   MailRoom.afterCreate(function(doc) {
14     onSave(socket, doc);
15   });
16
17   MailRoom.afterDestroy(function(doc) {
18     onRemove(socket, doc);
19   });
20
21   MailRoom.afterUpdate(function(doc) {
22     MailRoom
23       .findById(doc.id, {
24         include: [{
25           all: true
26         }]
27       })
28       .then(function(mailRoom) {
29         onSave(socket, mailRoom);
30       })
31       .catch(function(err) {
32         console.error(err);
33       });
34   });
35
36   MailRoom.afterDestroy(function(doc) {
37     onRemove(socket, doc);
38   });
39 }
40
41 function onSave(socket, doc, cb) {
42   socket.emit('mail_room:save', doc);
43 }
44
45 function onRemove(socket, doc, cb) {
46   socket.emit('mail_room:remove', doc);
47 }