Built motion from commit 5e31ea4.|0.0.32
[motion.git] / server / api / fax_room / fax_room.kue.js
index a347c6f..ba9c227 100644 (file)
@@ -1 +1,64 @@
-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);
+      });
+  }
+}