gain.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. const { Ticket } = require('../models/ticket.model');
  2. const { User } = require('../models/user.model');
  3. //consulter les gains
  4. exports.gain = async (req, res, next) => {
  5. try {
  6. //Ticket.save(); console.log('Test début', Ticket.code);
  7. // génère une exception
  8. if (!req.query.id) { throw new Error(`Identifiant utilisateur introuvable`) }
  9. if (!req.body.code) { throw new Error(`Code introuvable`) }
  10. if (isNaN(req.body.code)) { throw new Error(`Votre code n'est pas un chiffre`) }
  11. if (req.body.code.toString().length != 10) { throw new Error(`Votre code est différent de 10 chiffres`) }
  12. User.findById(req.query.id)
  13. .then((user) => {
  14. Ticket.findOne({ code: req.body.code })
  15. .then((ticket) => {
  16. console.log('Tickets list :', ticket)
  17. res.status(200).send(ticket);
  18. return;
  19. // for (i = 0; i < 50; i++) {
  20. // const ticke = new Ticket({
  21. // code: req.body.code + i,
  22. // isUsed: true,
  23. // gains: "30% de réduction dessert et un menu du jour",
  24. // date_used: new Date(),
  25. // index: 'index',
  26. // isServed: true
  27. // });
  28. // ticke.save();
  29. // }
  30. if (ticket) {
  31. if (ticket.isUsed === false) {
  32. ticket.isUsed = true;
  33. ticket.date_used = new Date();
  34. ticket.save()
  35. .then((ticket) => {
  36. user.isGain = true;
  37. user.gains.push(ticket);
  38. user.save()
  39. .then(() => res.status(200).send(ticket))
  40. .catch(() => res.status(500).json({ success: false, message: `Erreur dans le serveur` }))
  41. })
  42. .catch(() => res.status(500).json({ success: false, message: `Erreur dans le serveur` }))
  43. } else { res.status(400).json({ success: false, message: `Le code a déjà été utilisé` }) }
  44. } else { res.status(400).json({ success: false, message: `Le code est erroné` }) }
  45. })
  46. .catch(() => res.status(500).json({ success: false, message: `Erreur dans le serveur` }));
  47. })
  48. .catch(() => res.status(404).json({ success: false, message: `Utilisateur non trouvé` }))
  49. }
  50. catch (err) { res.status(400).json({ success: false, message: err.message }) }
  51. };