c1991c2cc8fb39c4f4497d52cf6206013e87739c
[motion2.git] / server / config / seedDB / voiceQueues.js
1 'use strict';
2
3 var db = require('../../mysqldb').db;
4 var logger = require('../logger')('app');
5
6 var voiceQueues = [{
7   id: 1,
8   type: 'inbound',
9   name: 'Support',
10   strategy: 'ringall',
11   musiconhold: 'wait',
12   description: 'inbound voice queue auto generated'
13 }, {
14   id: 2,
15   type: 'inbound',
16   name: 'Sales',
17   strategy: 'ringall',
18   musiconhold: 'wait',
19   description: 'inbound voice queue auto generated'
20 }, {
21   id: 3,
22   type: 'outbound',
23   name: 'Survey',
24   strategy: 'rrmemory',
25   TrunkId: 1,
26   IntervalId: 1,
27   musiconhold: 'noice',
28   description: 'outbound voice queue campaign auto generated'
29 }, {
30   id: 4,
31   type: 'outbound',
32   name: 'Telemarketing',
33   strategy: 'rrmemory',
34   TrunkId: 1,
35   IntervalId: 1,
36   musiconhold: 'noice',
37   description: 'outbound voice queue campaign auto generated'
38 }, {
39   id: 5,
40   type: 'outbound',
41   name: 'CallbackCampaign',
42   strategy: 'rrmemory',
43   TrunkId: 1,
44   IntervalId: 1,
45   musiconhold: 'noice',
46   description: 'outbound voice queue campaign auto generated'
47 }];
48
49 exports.create = function() {
50   return db.VoiceQueue
51     .bulkCreate(voiceQueues, {
52       ignoreDuplicates: true,
53       individualHooks: true
54     })
55     .then(function(entities) {
56       for (var i = 0; i < entities.length; i += 1) {
57         // add agents on all queues
58         entities[i].addAgents([2, 3], {
59           ignoreDuplicates: true,
60           individualHooks: true
61         });
62
63         // add agents on all queues
64         entities[i].addTeams([1], {
65           ignoreDuplicates: true,
66           individualHooks: true
67         });
68
69         if (entities[i].type === 'outbound' && entities[i].id !== 5) {
70           // add lists only for outbound queue
71           entities[i].addLists([1], {
72             ignoreDuplicates: true,
73             individualHooks: true
74           });
75           // add black lists only for outbound queue
76           entities[i].addBlackLists([2], {
77             ignoreDuplicates: true,
78             individualHooks: true
79           });
80         }
81
82         if (entities[i].id === 5) {
83           // add lists only for outbound queue
84           entities[i].addLists([3], {
85             ignoreDuplicates: true,
86             individualHooks: true
87           });
88         }
89       }
90       return entities;
91     })
92     .then(function() {
93       logger.info('Voice Queues have been created');
94     })
95     .catch(function(err) {
96       logger.error('Can\'t create Voice Queues');
97     });
98 };