Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
Latest commit
110 lines (106 loc) · 3.52 KB
/
Copy pathapp.js
File metadata and controls
110 lines (106 loc) · 3.52 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
104
105
106
107
108
109
110
constexpress=require('express');
constsession=require('express-session');
constFileStore=require('session-file-store')(session);
constpath=require('path');
constfavicon=require('serve-favicon');
constlogger=require('morgan');
constcookieParser=require('cookie-parser');
constbodyParser=require('body-parser');
constcors=require('cors')({
origin: true
});
conststatus=require('http-status');
constwagner=require('wagner-core');
require('./lib/dependencies')(wagner);
constapp=express();
// set the view engine to ejs
app.set('view engine','ejs');
app.set('views',path.join(__dirname,'public'));
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(cookieParser());
app.use(session({
name: 'server-session-cookie-id',
secret: 'my express secret',
saveUninitialized: true,
resave: true,
store: newFileStore({
retries: 10,
minTimeout: 100,
maxTimeout: 200,
path: path.join(__dirname,'sessions')
})
}));
constisAuth=wagner.invoke(function(){
return(req,res,next)=>{
if(req.session.user||req.path==='/login'||req.path==='/loggedin.html'){
req.user=req.session.user;
next();
}else{
res.redirect('/login');
}
};
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.post('/authenticate',wagner.invoke(function(UserService,AdminFirebase,FirebaseService){
returnfunction(req,res){
//var idToken = req.body.idToken;
varidToken=req.headers['authorization'].split(' ').pop();
AdminFirebase.auth().verifyIdToken(idToken)
.then(function(decodedToken){
varuid=decodedToken.uid;
req.session.user=decodedToken;
UserService.getUserById(uid)
.then(function(userRecord){
// See the UserRecord reference doc for the contents of userRecord.
console.log("Successfully fetched user data:",userRecord.toJSON());
varworker_id=userRecord.uid;
varworker_name=userRecord.displayName;
varavatar_url=userRecord.photoURL;
varfirebase=FirebaseService;
varworkers_list_promise=firebase.retrieveWorkersList();
workers_list_promise.then(function(workers_list){
if(workers_list.indexOf(worker_id)<0){
firebase.createWorker(worker_id,worker_name,avatar_url);
}
}).catch(function(err){
console.trace(err);
});
})
.catch(function(err){
console.log("Error fetching user data:",err);
});
res.json({
'Success': 200
})
}).catch(function(err){
// Handle error
console.trace(err);
});
};
}));
app.use(cookieParser());
app.use(isAuth);
app.use('/api/v1',require('./routes/api')(wagner));
app.use(express.static(path.join(__dirname,'public')));
app.use(require('./routes/app-routing')(wagner));
// catch 404 and forward to error handler
app.use(function(req,res,next){
varerr=newError('Not Found');
err.status=404;
next(err);
});
// error handler
app.use(function(err,req,res,next){
// set locals, only providing error in development
res.locals.message=err.message;
res.locals.error=req.app.get('env')==='development' ? err : {};
// render the error page
res.status(err.status||500);
res.sendFile(path.join(__dirname,'/public/404.html'));
});
module.exports=app;