const { Ticket } = require('../models/ticket.model'); const { User } = require('../models/user.model'); //consulter les gains exports.gain = async (req, res, next) => { try { //Ticket.save(); console.log('Test début', Ticket.code); // génère une exception if (!req.query.id) { throw new Error(`Identifiant utilisateur introuvable`) } if (!req.body.code) { throw new Error(`Code introuvable`) } if (isNaN(req.body.code)) { throw new Error(`Votre code n'est pas un chiffre`) } if (req.body.code.toString().length != 10) { throw new Error(`Votre code est différent de 10 chiffres`) } User.findById(req.query.id) .then((user) => { Ticket.findOne({ code: req.body.code }) .then((ticket) => { console.log('Tickets list :', ticket) res.status(200).send(ticket); return; // for (i = 0; i < 50; i++) { // const ticke = new Ticket({ // code: req.body.code + i, // isUsed: true, // gains: "30% de réduction dessert et un menu du jour", // date_used: new Date(), // index: 'index', // isServed: true // }); // ticke.save(); // } if (ticket) { if (ticket.isUsed === false) { ticket.isUsed = true; ticket.date_used = new Date(); ticket.save() .then((ticket) => { user.isGain = true; user.gains.push(ticket); user.save() .then(() => res.status(200).send(ticket)) .catch(() => res.status(500).json({ success: false, message: `Erreur dans le serveur` })) }) .catch(() => res.status(500).json({ success: false, message: `Erreur dans le serveur` })) } else { res.status(400).json({ success: false, message: `Le code a déjà été utilisé` }) } } else { res.status(400).json({ success: false, message: `Le code est erroné` }) } }) .catch(() => res.status(500).json({ success: false, message: `Erreur dans le serveur` })); }) .catch(() => res.status(404).json({ success: false, message: `Utilisateur non trouvé` })) } catch (err) { res.status(400).json({ success: false, message: err.message }) } };