-var _0x963d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x51\x75\x65\x75\x65","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x4E\x45\x57","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x64","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x46\x41\x58","\x66\x72\x6F\x6D","\x73\x61\x76\x65","\x66\x61\x78","\x63\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x73\x74\x72\x61\x74\x65\x67\x79","\x74\x69\x6D\x65\x6F\x75\x74","\x70\x72\x69\x6F\x72\x69\x74\x79","\x67\x65\x74\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x42\x79\x49\x64"];_0x963d[0];var User=require(_0x963d[2])[_0x963d[1]];var FaxRoom=require(_0x963d[2])[_0x963d[3]];var FaxQueue=require(_0x963d[2])[_0x963d[4]];var FaxAccount=require(_0x963d[2])[_0x963d[5]];var FaxApplication=require(_0x963d[2])[_0x963d[6]];exports[_0x963d[7]]=function(_0x3bc3x6){FaxRoom[_0x963d[8]](function(_0x3bc3x7){onSave(_0x3bc3x6,_0x3bc3x7)})};function onSave(_0x3bc3x6,_0x3bc3x7,_0x3bc3x9){if(_0x3bc3x7[_0x963d[9]]===_0x963d[10]){FaxAccount[_0x963d[25]](_0x3bc3x7.FaxAccountId)[_0x963d[20]](function(_0x3bc3xb){_0x3bc3xb[_0x963d[24]]({include:[{model:User,attributes:[_0x963d[13]]},{model:FaxQueue,attributes:[_0x963d[13],_0x963d[21],_0x963d[22]],include:{model:User,attributes:[_0x963d[13]]}}],order:[[_0x963d[23]]]})[_0x963d[20]](function(_0x3bc3xc){var _0x3bc3xd={roomId:_0x3bc3x7[_0x963d[13]],accountId:_0x3bc3x7[_0x963d[14]],channel:_0x963d[15],msg:{from:_0x3bc3x7[_0x963d[16]]},applications:_0x3bc3xc};_0x3bc3x6[_0x963d[19]](_0x963d[18],_0x3bc3xd)[_0x963d[17]]();})[_0x963d[12]](function(_0x3bc3xa){console[_0x963d[11]](_0x3bc3xa)})})[_0x963d[12]](function(_0x3bc3xa){console[_0x963d[11]](_0x3bc3xa)})}}
\ No newline at end of file
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var User = require('../../models').User;
+var FaxRoom = require('../../models').FaxRoom;
+var FaxQueue = require('../../models').FaxQueue;
+var FaxAccount = require('../../models').FaxAccount;
+var FaxApplication = require('../../models').FaxApplication;
+
+exports.register = function(queue) {
+ FaxRoom.afterCreate(function(doc) {
+ onSave(queue, doc);
+ });
+}
+
+function onSave(queue, doc, cb) {
+ if (doc.status === 'NEW') {
+ FaxAccount
+ .findById(doc.FaxAccountId)
+ .then(function(faxAccount) {
+ faxAccount
+ .getFaxApplications({
+ include: [{
+ model: User,
+ attributes: ['id']
+ }, {
+ model: FaxQueue,
+ attributes: ['id', 'strategy', 'timeout'],
+ include: {
+ model: User,
+ attributes: ['id']
+ }
+ }],
+ order: [
+ ['priority']
+ ]
+ })
+ .then(function(faxApplications) {
+
+ var data = {
+ roomId: doc.id,
+ accountId: doc.FaxAccountId,
+ channel: 'FAX',
+ msg: {
+ from: doc.from
+ },
+ applications: faxApplications
+ };
+
+ // Create queue process
+ queue.create('fax', data).save();
+ })
+ .catch(function(err) {
+ console.error(err);
+ });
+ })
+ .catch(function(err) {
+ console.error(err);
+ });
+ }
+}