-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
executable file
·134 lines (105 loc) · 4.02 KB
/
server.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
/**
* Module dependencies.
*/
var express = require('express'),
path = require('path'),
util = require('util'),
fs = require('fs'),
moment = require('moment'),
home = require('./app/controllers/home');
login = require('./app/controllers/login');
svc = require('./app/controllers/svc');
teams = require('./app/controllers/teams');
players = require('./app/controllers/players');
var app = module.exports = express();
global.app = app;
app.root = process.cwd();
// we need to configure environment
console.log(util.inspect(app.settings));
var mainEnv = app.root + '/config/environment'+'.js';
var supportEnv = app.root + '/config/environments/' + app.settings.env+'.js';
require(mainEnv)
require(supportEnv)
// load settings
require('./settings').boot(app)
// load controllers
require('./lib/boot')(app, { verbose: !module.parent });
// =========================================
// ROUTING
//
// Access Control Function
function restrict(req, res, next) {
if( req.session && req.session.profiles && req.session.accessToken ) {
next();
return;
}
// Failed... login
console.log('Sorry...restricted!')
if( !req.session) console.log('Sorry...no session!')
if( req.session && !req.session.profiles) console.log('Sorry...no profiles!')
if( req.session && !req.session.accessToken) console.log('Sorry...no accessToken!')
//console.log(req.session)
res.format({
html: function(req, res) {
var redirect_to = '/login?requested_url='+req.url;
console.log("unauthorized! redirect to:"+redirect_to);
res.redirect(redirect_to, 302);
},
json: function() {
var headers = {
'Status': "Unauthorized",
'WWW-Authenticate': "OAuth realm='/radarsat'"
}
res.send("Unauthorized", headers, 401);
}
})
}
// Home page -> app
app.get('/', home.index);
app.get('/profile', restrict, home.show_profile);
app.get('/set_profile', home.set_profile);
app.get('/get_self', home.get_self);
app.get('/contact', home.contact);
app.get('/about', home.about);
app.get('/svc/add/:id', svc.add);
app.get('/svc/del/:id', svc.del);
app.get('/svc/FitBit', svc.FitBit);
app.get('/svc/FitBitAll/:id', svc.FitBitAll);
app.get('/svc/FitBitAll', svc.FitBitAll);
app.get('/svc/Withings', svc.Withings);
app.get('/svc/WithingsAll/:id', svc.WithingsAll);
app.get('/login', login.index);
app.get('/logout', login.logout);
app.get('/signup', login.index);
app.get('/teams/list', restrict, teams.list);
app.get('/teams/create', restrict, teams.create);
app.post('/teams/invite', restrict, teams.invite);
app.get('/teams/:id', restrict, teams.show);
app.get('/teams/join/:id', restrict, teams.join);
app.get('/teams/edit/:id', restrict, teams.edit);
app.post('/teams/update/:id', restrict, teams.update);
app.get('/teams/destroy/:id', restrict, teams.destroy);
app.get('/teams/share/:id', restrict, teams.share);
app.get('/teams/join/:id', restrict, teams.join);
app.post('/teams', restrict, teams.submit);
app.get('/players/invite', restrict, players.invite);
app.get('/players/block', restrict, players.block);
// Firebase
var firebase = require('./lib/firebase-node.js')
app.Firebase = new firebase("https://aggrefit-firebase.firebaseio.com");
var restart = app.Firebase.child('application');
var now = moment().format()
restart.set({'last-restart': now }, function(error) {
if (error) {
console.log('restart data could not be saved.' + error);
} else {
console.log('restart date saved successfully.');
}
})
// ===========================================================
// port set based on NODE_ENV settings (production, development or test)
console.log("trying to start on port:"+ app.get('port'));
if (!module.parent) {
app.listen(app.get('port'));
console.log('Aggrefit Server started on port:'+app.get('port'));
}