-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathServer.js
More file actions
executable file
·103 lines (85 loc) · 2.95 KB
/
Server.js
File metadata and controls
executable file
·103 lines (85 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
var express = require('express');
var mysql = require('mysql');
var bodyParser = require('body-parser');
var rest = require('./REST.js');
var app = express();
var settings = require('./backend_settings');
const logger = require('./Workflow/Logger.js');
import "babel-core/register";
import "babel-polyfill";
var schedule = require('node-schedule');
var Email = require('./Workflow/Email.js');
var Sequelize = require('sequelize');
var dateFormat = require('dateformat');
var Guid = require('guid');
var models = require('./models');
var Manager = require('./Workflow/Manager.js');
const sequelize = require('./models/index.js').sequelize;
var TaskFactory = require('./Workflow/TaskFactory.js');
var manager = new Manager();
var taskFactory = new TaskFactory();
function REST() {
var self = this;
self.configureExpress();
};
REST.prototype.configureExpress = function() {
var self = this;
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
});
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true,parameterLimit:50000}));
var router = express.Router();
app.use('/api', router);
var rest_router = new rest(router);
self.startServer();
};
REST.prototype.startServer = function() {
app.listen(settings.SERVER_PORT, function() {
console.log('All right ! I am alive at Port .' + settings.SERVER_PORT);
console.log();
});
};
REST.prototype.stop = function(err) {
console.log('ISSUE WITH MYSQL n' + err);
process.exit(1);
};
//-----------------------------------------------------------------------------------------------------------------------------------------
sequelize.query('SET FOREIGN_KEY_CHECKS = 0')
.then(function() {
return sequelize.sync({
//force: true,
// logging: console.log
});
})
.then(function() {
return sequelize.query('SET FOREIGN_KEY_CHECKS = 1');
})
.then(function() {
console.log('Database synchronised.');
}, function(err) {
console.log(err);
});
var rule = new schedule.RecurrenceRule();
rule.minute = 1;
//'1 * * * * *' 1 minute.
var job = schedule.scheduleJob('1 * * * * *', function(time) {
manager.check();
//Just for testing
//taskFactory.rankingSnapshot(true);
});
// //Everyday at midnight
// schedule.scheduleJob({ hour: 0, minute: 0 }, function() {
// taskFactory.rankingSnapshot(true);
// });
// //Every sunday at midnight
// schedule.scheduleJob({ hour: 0, minute: 0, dayOfWeek: 0 }, function() {
// taskFactory.rankingSnapshot(false, true);
// });
//-----------------------------------------------------------------------------------------------------------------------------------------
new REST();