925dc18784505fea272038b04187e3a82085bd10
[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 MailAccount = require('../../models').MailAccount;
10 var MailRoom = require('../../models').MailRoom;
11 var User = require('../../models').User;
12
13 exports.register = function(socket) {
14   MailRoom.afterCreate(function(doc) {
15     onSave(socket, doc);
16   });
17
18   MailRoom.afterDestroy(function(doc) {
19     onRemove(socket, doc);
20   });
21
22   MailRoom.afterUpdate(function(doc) {
23     MailRoom
24       .findById(doc.id, {
25         include: [{
26           all: true
27         }]
28       })
29       .then(function(mailRoom) {
30         onSave(socket, mailRoom);
31       })
32       .catch(function(err) {
33         console.error(err);
34       });
35   });
36
37   MailRoom.afterDestroy(function(doc) {
38     onRemove(socket, doc);
39   });
40 }
41
42 function onSave(socket, doc, cb) {
43   socket.emit('mail_room:save', doc);
44 }
45
46 function onRemove(socket, doc, cb) {
47   socket.emit('mail_room:remove', doc);
48 }