Built motion from commit 3e059bc2.|2.5.32
[motion2.git] / server / config / seedDB / intervals.js
1 'use strict';
2
3 var _ = require('lodash');
4
5 var db = require('../../mysqldb').db;
6 var logger = require('../logger')('app');
7
8 var subIntervals = {
9   'WorkingTime': [{
10     name: 'Morning',
11     interval: '09:00-13:00,mon-fri,*,*'
12   }, {
13     name: 'Afternoon',
14     interval: '14:00-18:00,mon-fri,*,*'
15   }],
16   'Holidays': [{
17     name: 'Christmas',
18     interval: '*,*,25,dec'
19   }, {
20     name: 'NewYear',
21     interval: '*,*,1,jan'
22   }, {
23     name: 'Valentines',
24     interval: '*,*,14,feb'
25   }, {
26     name: 'Halloween',
27     interval: '*,*,31,oct'
28   }]
29 };
30
31 var intervals = [{
32   id: 1,
33   name: 'WorkingTime',
34   description: 'working time auto generated'
35 }, {
36   id: 2,
37   name: 'Holidays',
38   description: 'working time auto generated'
39 }];
40
41 exports.create = function() {
42   return db.Interval
43     .bulkCreate(intervals, {
44       ignoreDuplicates: true,
45       individualHooks: true
46     })
47     .then(function(entities) {
48       for (var i = 0; i < entities.length; i += 1) {
49         if (subIntervals[entities[i].name]) {
50           for (var j = 0; j < subIntervals[entities[i].name].length; j += 1) {
51
52             subIntervals[entities[i].name][j] = _.defaults(subIntervals[entities[i].name][j], {
53               description: entities[i].description,
54               IntervalId: entities[i].id
55             });
56
57             db.Interval.create(subIntervals[entities[i].name][j]);
58           }
59         }
60
61       }
62     })
63     .then(function() {
64       logger.info('Intervals have been created');
65     })
66     .catch(function(err) {
67       logger.error('Can\'t create Intevals');
68     });
69 };