const role = require('../lib/role'); const bcrypt = require('bcrypt'); const { User } = require('../models/user.model'); const jwt = require('jsonwebtoken'); const config = require('../config/config.json'); var validator = require('validator'); //inscription admin console.log('process.argv =>', process.argv) const email = process.argv[2]; const password = process.argv[3]; console.log('email =>', email); console.log('password =>', password); const user = new User(); user.role = role.Admin; user.email = email; //user.password = await bcrypt.hash(password, 12) user.password = password; console.log('User =>', user) user.save().then(() => { const token = jwt.sign({ _id: user._id, email: user.email, role: user.role }, config.secret_key, { expiresIn: '10 h' }); res.status(201).json( { success: true, token, expireIn: `${new Date().getTime() + 120000}` }); }) .catch((err) => console.log('Mon message => ', err)) // exports.signup = async (req, res, next) => { // try { // // génère une exception // if (!req.body.firstname) { throw new Error('Nom introuvable') } // if (!req.body.lastname) { throw new Error('Prénom introuvable') } // if (!req.body.email) { throw new Error('Adresse email introuvable') } // if (!req.body.birthday) { throw new Error('Date de naissance introuvable') } // if (!req.body.phonenumber) { throw new Error('Numéro de téléphone introuvable') } // if (!req.body.adress) { throw new Error('Adresse introuvable') } // if (!validator.isEmail(req.body.email)) { throw new Error('Adresse email invalide') } // if (isNaN(Date.parse(req.body.birthday)) || (Date.parse(req.body.birthday)) > 1073692800000) { throw new Error('Date de naissance invalide') } // const user = await User.findOne({ email: req.body.email }, { email: 1 }) // if (user) { // res.status(401).json({ success: false, message: 'Adresse email existe déja veuillez renseigner une autre adresse email' }) // } else { // bcrypt.hash(req.body.password, 12) // .then(hash => { // const user = new User({ // firstname: req.body.firstname, // lastname: req.body.lastname, // email: req.body.email, // role: role.Client, // birthday: req.body.birthday, // phonenumber: req.body.phonenumber, // adress: req.body.adress, // isActive: true, // isGain: false, // password: hash // }); // user.save() // .then(() => { // const token = jwt.sign({ userId: user._id, email: user.email, role: user.role }, config.secret_key, { expiresIn: '10 h' }) // res.status(201).json( // { success: true, token, expireIn: `${new Date().getTime() + 120000}` }) // }) // .catch((err) => res.status(500).json({ success: false, message: err.message })) // }) // .catch(() => res.status(400).json({ success: false, message: 'Erreur dans le mot de passe' })); // } // } // catch (err) { // res.status(400).json({ success: false, message: err.message }) // } // };