Built motion from commit 3e059bc2.|2.5.32
[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;