Built motion from commit (unavailable).|2.4.17
[motion2.git] / server / config / seedDB / index.js
1 /**
2  * Populate DB with sample data on server start
3  * to disable, edit config/environment/index.js, and set `seedDB: false`
4  */
5
6 'use strict';
7
8 var BPromise = require('bluebird');
9
10 var db = require('../../mysqldb').db;
11 var logger = require('../logger')('app');
12
13 var defaultSeed = function() {
14     return db.Setting
15         .findOrCreate({
16             where: {
17                 id: 1
18             },
19             defaults: {
20                 firstSetup: true
21             }
22         })
23         .spread(function(settings, created) {
24
25             if (created) {
26                 // NOTE: Run only first installation
27                 logger.info('Settings have been created');
28                 
29                 require('./analyticTreeReports').createCustom();
30                 require('./analyticReports').createCustom();
31                 require('./migrations').create();
32                 require('./intervals').create();
33                 require('./userProfiles').create();
34                 require('./users').create();
35                 require('./teams').create();
36                 require('./trunks').create();
37                 require('./voiceQueues').create();
38                 require('./chanspy').create();
39                 require('./voiceMusicOnHold').create();
40                 require('./variables').create();
41                 require('./pauses').create();
42                 require('./tags').create();
43                 require('./companies').create();
44                 require('./sounds').create();
45                 require('./squareOdbc').create();
46                 require('./squareProjects').create();
47                 require('./jscriptyProjects').create();
48                 require('./voiceExtensions').create();
49                 require('./mailSubstatuses').create();
50                 require('./dispositions').create();
51                 return require('./lists').create()
52                 .then(function(){
53                     return require('./contacts').create();
54                 });
55             }
56         })
57         .then(function() {
58             // NOTE: Run always
59             require('./voiceContexts').create();
60             require('./voiceExtensions').createAlways();
61             require('./mailAccounts').create();
62             require('./analyticTreeReports').createDefault();
63             require('./analyticReports').createDefault();
64         })
65         .catch(function(err) {
66             logger.error(JSON.stringify(err));
67         });
68 };
69
70 exports.default = defaultSeed;