60 lines
1.2 KiB
JavaScript
60 lines
1.2 KiB
JavaScript
const db = require("../models");
|
|
const ROLES = db.ROLES;
|
|
const User = db.user;
|
|
|
|
checkDuplicateUsernameOrEmail = (req, res, next) => {
|
|
// Username
|
|
User.findOne({
|
|
username: req.body.username
|
|
}).exec((err, user) => {
|
|
if (err) {
|
|
res.status(500).send({ message: err });
|
|
return;
|
|
}
|
|
|
|
if (user) {
|
|
res.status(400).send({ message: "oof! ce nom d'utilisateur est déjà utilisé" });
|
|
return;
|
|
}
|
|
|
|
// Email
|
|
User.findOne({
|
|
email: req.body.email
|
|
}).exec((err, user) => {
|
|
if (err) {
|
|
res.status(500).send({ message: err });
|
|
return;
|
|
}
|
|
|
|
if (user) {
|
|
res.status(400).send({ message: "oof! cette addresse courriel est déjà utilisé" });
|
|
return;
|
|
}
|
|
|
|
next();
|
|
});
|
|
});
|
|
};
|
|
|
|
checkRolesExisted = (req, res, next) => {
|
|
if (req.body.roles) {
|
|
for (let i = 0; i < req.body.roles.length; i++) {
|
|
if (!ROLES.includes(req.body.roles[i])) {
|
|
res.status(400).send({
|
|
message: `oof! ce role ${req.body.roles[i]} n'existe pas`
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
next();
|
|
};
|
|
|
|
const verifySignUp = {
|
|
checkDuplicateUsernameOrEmail,
|
|
checkRolesExisted
|
|
};
|
|
|
|
module.exports = verifySignUp;
|