-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.js
141 lines (113 loc) · 3.9 KB
/
app.js
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/**
* Set keys and URL's
*/
var routeApiUri = process.env.ROUTING_API_URL;
var ntbApiUri = process.env.NTB_API_URL;
var ntbApiKey = process.env.NTB_API_KEY;
var dntApiKey = process.env.DNT_CONNECT_KEY;
var sessionSecret = process.env.SESSION_SECRET || "0rdisObMCVXWawtji4B2iIGIKKqlsgAOPJhcHw4IREiCf7PGnAxY2isXfXd2Is7a";
/**
* Module dependencies
*/
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var errorHandler = require('errorhandler');
var cookieSession = require('cookie-session');
var methodOverride = require('method-override');
var DNT = require('dnt-api');
var sentry = require('./lib/sentry');
// Start app
var app = module.exports = express();
// All environments
app.set('url', process.env.APP_URL);
app.set('port', process.env.APP_PORT || 8080);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json({extended: true, limit: '10mb'}));
app.use(methodOverride());
app.use(cookieParser(sessionSecret));
app.use(cookieSession({name: 'turadmin:sess', secret: sessionSecret}));
app.use(sentry.raven.middleware.express(sentry));
app.use(errorHandler({dumpExceptions: true, showStack: true}));
app.use('/', express.static(__dirname + '/public'));
app.disable('x-powered-by');
app.set('x-powered-by', false);
app.disable('etag');
app.set('etag', false);
if (app.get('env') === 'development') {
app.set('view cache', false);
}
/**
* Routes and middleware
*/
var restProxy = require('./routes/restProxy')(app, {ntbApiUri: ntbApiUri, ntbApiKey: ntbApiKey});
var userGroupsFetcher = require('./routes/userGroupsFetcher')(app, express, {api: new DNT('Turadmin/1.0', dntApiKey), restProxy: restProxy});
require('./routes/auth')(app, {
dntApi: new DNT('Turadmin/1.0', dntApiKey),
userGroupsFetcher: userGroupsFetcher
});
require('./routes/termsAndConditions')(app);
require('./routes/routes-index')(app, {
dntApi: new DNT('Turadmin/1.0', dntApiKey),
userGroupsFetcher: userGroupsFetcher,
restProxy: restProxy
});
require('./routes/pois-index')(app, {
dntApi: new DNT('Turadmin/1.0', dntApiKey),
userGroupsFetcher: userGroupsFetcher,
restProxy: restProxy
});
require('./routes/route')(app, restProxy, {
routeApiUri: routeApiUri,
dntApi: new DNT('Turadmin/1.0', dntApiKey),
userGroupsFetcher: userGroupsFetcher
});
require('./routes/poi')(app, restProxy, {
routeApiUri: routeApiUri,
dntApi: new DNT('Turadmin/1.0', dntApiKey),
userGroupsFetcher: userGroupsFetcher
});
require('./routes/groups')(app, {
dntApi: new DNT('Turadmin/1.0', dntApiKey),
userGroupsFetcher: userGroupsFetcher,
restProxy: restProxy
});
require('./routes/lists')(app, {
dntApi: new DNT('Turadmin/1.0', dntApiKey),
userGroupsFetcher: userGroupsFetcher,
restProxy: restProxy
});
require('./routes/chown')(app, {
dntApi: new DNT('Turadmin/1.0', dntApiKey),
restProxy: restProxy
});
// Redirect requests to '/' to '/turer'
app.use('/', function (req, res, next) {
"use strict";
// We do not want to redirect requests for files or XHR's Could be replaced
// with regexp matching all file extensions except html Also, this should be
// in the route below, but did not get that to work, because this route also
// caught requests for files and stuff
var isFileRequest = !!req.url.match(/^.*\.(css|js|map)$/);
var isXhr = req.xhr;
if (isFileRequest || isXhr) {
res.status(404).end();
} else {
res.redirect(301, '/turer');
}
});
// 404 handling
// Redirect requests for invalid URL's to /
app.use(function (req, res, next) {
"use strict";
res.redirect(307, '/');
});
if (!module.parent) {
app.listen(app.get('port'), function () {
"use strict";
console.log('Express server listening on port ' + app.get('port'));
});
}