99 lines
2.0 KiB
JavaScript
99 lines
2.0 KiB
JavaScript
const db = require("../models");
|
|
const dev = require("deep-email-validator");
|
|
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();
|
|
};
|
|
|
|
validateEmail = async (req, res, next) => {
|
|
if (req.body.email) {
|
|
const emailRes = await dev.validate({
|
|
email: req.body.email,
|
|
sender: req.body.email,
|
|
validateRegex: true,
|
|
valideMx: true,
|
|
validateTypo: true,
|
|
validateDisposable: true,
|
|
validateSMTP: false,
|
|
})
|
|
console.log((emailRes.valid))
|
|
if (!emailRes.valid) {
|
|
res.status(400).send({
|
|
message: "oof! ton email est pas valide loco"
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
|
|
next();
|
|
};
|
|
|
|
checkPassLimit = (req, res, next) => {
|
|
if (req.body.password) {
|
|
if (req.body.password.length <= 8) {
|
|
res.status(400).send({
|
|
message: "oof! ce password ne respecte pas les limitations en cours."
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
|
|
next();
|
|
};
|
|
|
|
const verifySignUp = {
|
|
checkDuplicateUsernameOrEmail,
|
|
checkRolesExisted,
|
|
validateEmail,
|
|
checkPassLimit
|
|
};
|
|
|
|
module.exports = verifySignUp;
|