-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
94 lines (74 loc) · 2.4 KB
/
app.js
File metadata and controls
94 lines (74 loc) · 2.4 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
/**
* External libraries
*/
var express = require('express');
var methodOverride = require('method-override');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var sha1 = require('sha1');
/**
* Application includes
*/
global.configs = {
app: require('./lib/app.config.js')
};
// If we are in development environment
if (!process.env.mysql_database) {
global.configs.database = require('./lib/database.config.js');
} else {
global.configs.database = {
host : process.env.mysql_host,
user : process.env.mysql_user,
password: process.env.mysql_password,
database: process.env.mysql_database
};
}
var headersInit = require('./lib/headers.js');
var autorizationCheck = require('./lib/autorization.js');
var outputs = require('./lib/outputs.js');
var connection = mysql.createConnection(global.configs.database);
/**
* Database connection
*/
connection.connect();
/**
* Application configuration
*/
var app = express();
var routes = {
home: require('./src/controllers/root.js'),
login: require('./src/controllers/login.js'),
signup: require('./src/controllers/signup.js'),
facebook: require ('./src/controllers/facebook.login.js'),
token: require ('./src/controllers/token.js'),
user: require ('./src/controllers/user.js'),
results: require ('./src/controllers/results.js')
};
var models = {
users: require('./src/models/users.js').init(connection, sha1),
tokens: require('./src/models/tokens.js').init(connection, sha1),
results: require('./src/models/results.js').init(connection)
};
models.users.setTokenManager(models.tokens);
app.set('models', models);
/**
* Application middleware
*/
app.use(methodOverride());
app.use(bodyParser());
app.use(headersInit());
/**
* Application routing
*/
app.get('/', autorizationCheck.api, routes.home);
app.post('/login', autorizationCheck.api, routes.login);
app.post('/signup', autorizationCheck.api, routes.signup);
app.post('/login/facebook', autorizationCheck.api, routes.facebook);
app.get('/token', autorizationCheck.api, routes.token);
app.get('/me', autorizationCheck.api, autorizationCheck.token, routes.user.infos);
app.get('/history', autorizationCheck.api, autorizationCheck.token, routes.results.history);
/**
* Launch application
*/
app.listen(process.env.PORT || 1337);
outputs.write("Account API server ready...");