-
Notifications
You must be signed in to change notification settings - Fork 72
/
Copy pathverifySignUp.js
64 lines (54 loc) · 1.25 KB
/
verifySignUp.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
const db = require("../models");
const User = db.user;
checkDuplicateUsernameOrEmail = async (req, res, next) => {
try {
// Username
let user = await User.findOne({
where: {
username: req.body.username
}
});
if (user) {
return res.status(400).send({
message: "Failed! Username is already in use!"
});
}
// Email
user = await User.findOne({
where: {
email: req.body.email
}
});
if (user) {
return res.status(400).send({
message: "Failed! Email is already in use!"
});
}
next();
} catch (error) {
return res.status(500).send({
message: error.message
});
}
};
checkRolesExisted = async (req, res, next) => {
const roles = await db.role.findAll()
let roleNames = []
roles.forEach(role => roleNames.push(role.name))
if (req.body.roles) {
for (let i = 0; i < req.body.roles.length; i++) {
if (!roleNames.includes(req.body.roles[i])) {
res.status(400).send({
message: "Failed! Role does not exist = " + req.body.roles[i]
});
return;
}
}
}
next();
};
const verifySignUp = {
checkDuplicateUsernameOrEmail,
checkRolesExisted
};
module.exports = verifySignUp;