Built motion from commit 67e5df37.|2.0.66
[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: 'Moornig',
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 };