| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- const { Ticket } = require('../models/ticket.model');
- const { User } = require('../models/user.model');
- //consulter les gains
- exports.gain = async (req, res, next) => {
- try {
-
- // 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) => {
-
- if (ticket) {
- if (ticket.isUsed === false) {
- ticket.isUsed = true;
- ticket.date_used = new Date();
- res.send(ticket);
-
- 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` }));
- return;
- })
- .catch(() => res.status(404).json({ success: false, message: `Utilisateur non trouvé` }))
- }
- catch (err) { res.status(400).json({ success: false, message: err.message }) }
-
- };
|