-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserController.js
More file actions
125 lines (105 loc) · 3.31 KB
/
Copy pathUserController.js
File metadata and controls
125 lines (105 loc) · 3.31 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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
const UserService = require('./UserService');
var jwtUtil = require('./jwtUtil');
var config = require('./config');
var userService = new UserService();
module.exports = function(app) {
app.post('/signup', function(req, res){
res.setHeader('Content-Type', 'application/json;charset=utf-8');
var data = req.body;
var user = null;
try{
user = userService.addUser( data );
}
catch(e){
res.sendStatus(409);
return;
}
res.send( user );
});
app.post('/login', function(req, res){
res.setHeader('Content-Type', 'application/json;charset=utf-8');
var data = req.body;
var user = userService.login( data );
if(user)
{
let jwtExpTime = config.getJwtExpTime();
var payload = {name:user.name, email:user.email,userId:user.id};
let token = jwtUtil.generateJWTToken( payload, jwtExpTime);
res.send({ "token" : token,
"type":"Bearer",
"expiresInSeconds":jwtExpTime-1
} );
}
else
{
res.sendStatus(401);
}
});
app.get('/user', function(req, res){
res.setHeader('Content-Type', 'application/json;charset=utf-8');
var data = userService.getAllUsers();
res.json(data);
});
app.get('/user/:userId', function (req, res) {
res.setHeader('Content-Type', 'application/json;charset=utf-8');
var user = userService.getUser(req.params.userId);
if(user){
res.json(user);
}
else
{
res.sendStatus(404);
}
})
app.put('/user/:userId', function (req, res) {
res.setHeader('Content-Type', 'application/json;charset=utf-8');
var user = userService.updateTodo(req.params.userId, req.body)
if(user){
res.json(user);
}
else
{
res.sendStatus(404);
}
})
app.delete('/user/:userId', function(req, res){
userService.deleteUser(req.params.userId);
res.setHeader('Content-Type', 'application/json;charset=utf-8');
var resp = {"message":"User is deleted successfully"};
res.send(resp);
});
const publicApi = ['','/', '/signup', '/signup/','/login', '/login/','/config','/config/'];
function isAuthRequired(api)
{
if( byPassAuth )
{
return false;
}
var i = api.indexOf('?');
if( i > -1){
api = api.substring(0, i);
}
if( publicApi.indexOf(api) == -1)
{
return true;
}
return false;
}
function validateAuth(req, res)
{
let authHeader = req.header('Authorization');
if(!authHeader)
{
res.sendStatus(401);
return false;
}
authHeader = authHeader.replace('Bearer ','').replace('bearer ','');
var obj = jwtUtil.verifyToken(authHeader);
if( obj == null)
{
res.sendStatus(401);
return null;
}
return obj;
}
}