-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathuser.js
100 lines (85 loc) · 2.1 KB
/
user.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
var config = require(__dirname + '/config.js');
exports.createRoutes = function (app, database) {
/*
** User creation
*/
app.post("/api/user", function(req, res) {
if (req.session.user)
{
res.send(409, "You are connected, you can't create an account");
return false;
}
var email = req.param('email');
var password = req.param('password');
if (!email || !password || email.length < 3 || password.length < 3 || !email.match(config.emailRegex))
{
res.send(400, "Please provide a correct email and a correct password");
return false;
}
database.user.create(email, password, function (user, err) {
if (err)
{
console.log("[error] user %s already exist", email);
res.send(409, "This user already exist");
return false;
}
console.log("[info ] Creating new user %s", email);
req.session.user = user.emitted.complete[0];
res.send("User created");
});
});
/*
** User delete
*/
app.delete("/api/user", function(req, res) {
if (!req.session.user)
{
res.send(401, "You are not connected");
return false;
}
database.user.delete(req.session.user, function() {
delete req.session.user;
res.send("User deleted");
});
});
/*
** Login
*/
app.get("/api/#", function (req, res) {
if (req.session.user)
{
res.send("Already connected");
return true;
}
var email = req.param('email');
var password = req.param('password');
if (!email || !password || email.length < 3 || password.length < 3)
{
res.send(400, "Please provide a correct email and a correct password");
return false;
}
database.user.login(email, password, function(user) {
if (!user)
{
console.log("[error] connection error for user %s", email);
res.send(401, "Wrong email or password");
return false;
}
req.session.user = user;
console.log("[info ] user %s connected", email);
res.send("Connected");
});
});
/*
** Logout
*/
app.delete("/api/#", function (req, res) {
if (!req.session.user)
{
res.send(401, "You are not connected");
return false;
}
delete req.session.user;
res.send("Logged out");
});
};