f28c26a9c6917f19536ee16499bb97f0c30c7137
[motion.git] / server / config / ami / queue_caller.js
1 var moment = require('moment');
2
3 function QueueCaller() {
4   console.log('QueueCaller Initialization...');
5 }
6
7 QueueCaller.prototype.join = function(evt) {
8   evt.queuecallerjoinAt = moment().format("YYYY-MM-DD HH:mm:ss");
9   create(evt);
10 }
11
12 QueueCaller.prototype.leave = function(evt) {
13   evt.queuecallerleaveAt = moment().format("YYYY-MM-DD HH:mm:ss");
14   findAndUpdate(evt);
15 }
16
17 QueueCaller.prototype.abandon = function(evt) {
18   evt.queuecallerabandon = true;
19   evt.queuecallerabandonAt = moment().format("YYYY-MM-DD HH:mm:ss");
20   findAndUpdate(evt);
21 }
22
23 QueueCaller.prototype.complete = function(evt) {
24   evt.queuecallercompleteAt = moment().format("YYYY-MM-DD HH:mm:ss");
25   findAndUpdate(evt);
26 }
27
28 function create(evt) {
29   var queue = require('../../models').ReportQueue;
30   queue
31     .create(evt)
32     .then(function(queue) {
33       console.log('[report] queue created');
34     })
35     .catch(function(err) {
36       console.error('[report] queue ' + err);
37     });
38 }
39
40 function findAndUpdate(evt) {
41   var queue = require('../../models').ReportQueue;
42   queue
43     .update(evt, {
44       where: {
45         uniqueid: evt.uniqueid
46       },
47       individualHooks: true
48     })
49     .then(function(queue) {
50       console.info('[queue_caller] queue_caller updated');
51     })
52     .catch(function(err) {
53       console.error('[queue_caller] queue_caller error: ' + err);
54     });
55 }
56
57 module.exports = QueueCaller;