Built motion from commit 3e059bc2.|2.5.32
[motion2.git] / server / config / seedDB / analyticReports.js
1 'use strict';
2 var util = require('util');
3
4 var db = require('../../mysqldb').db;
5 var logger = require('../logger')('app');
6
7 var report = require('./report');
8
9 exports.createDefault = function() {
10   // Remove default report
11   return db.AnalyticDefaultReport
12     .destroy({
13       where: {}
14     })
15     .then(function() {
16       return db.AnalyticDefaultReport.bulkCreate(report.default('motion'), {
17         ignoreDuplicates: true,
18         individualHooks: true
19       });
20     })
21     .then(function(entities) {
22       var fields = report.fields();
23       for (var i = 0; i < entities.length; i += 1) {
24         if (fields[entities[i].id]) {
25           for (var j = 0; j < fields[entities[i].id].length; j += 1) {
26             fields[entities[i].id][j].DefaultReportId = fields[entities[i].id][j].ReportId;
27             delete fields[entities[i].id][j].ReportId;
28             //db.AnalyticFieldReport.create(fields[entities[i].id][j]);
29           }
30           db.AnalyticFieldReport.bulkCreate(fields[entities[i].id]);
31         }
32       }
33     })
34     .then(function() {
35       logger.info('Analytic Default Reports have been created');
36     })
37     .catch(function(err) {
38       logger.error('Can\'t create Analytic Default Report', err.message);
39     });
40 };
41
42 exports.createCustom = function() {
43   return db.AnalyticCustomReport
44     .bulkCreate(report.default('custom'), {
45       ignoreDuplicates: true,
46       individualHooks: true
47     })
48     .then(function(entities) {
49       var fields = report.fields();
50       for (var i = 0; i < entities.length; i += 1) {
51         if (fields[entities[i].id]) {
52           for (var j = 0; j < fields[entities[i].id].length; j += 1) {
53             fields[entities[i].id][j].CustomReportId = fields[entities[i].id][j].ReportId;
54             delete fields[entities[i].id][j].ReportId;
55             // db.AnalyticFieldReport.create(fields[entities[i].id][j]);
56           }
57           db.AnalyticFieldReport.bulkCreate(fields[entities[i].id]);
58         }
59       }
60     })
61     .then(function() {
62       logger.info('Analytic Custom Reports have been created');
63     })
64     .catch(function(err) {
65       logger.error('Can\'t create Analytic Custom Report');
66     });
67 };