message.controller.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. * @file Provides the model and operation for messages.
  3. * @author Inigo Valentin
  4. * @since 4.0.0
  5. */
  6. const logger = require('pino')();
  7. const db = require("../models");
  8. const User = db.users;
  9. const Message = db.messages;
  10. const Op = db.Sequelize.Op;
  11. /**
  12. * Create and save a new message.
  13. *
  14. * @param req The received request by the server.
  15. * @param res The request to be sent by the server.
  16. */
  17. exports.create = async (req, res) => {
  18. // Validate request
  19. let missing = [];
  20. if (!req.body.name) missing.push("name");
  21. if (!req.body.email) missing.push("email");
  22. if (!req.body.text) missing.push("text");
  23. if (missing.length > 0){
  24. let message = "Missing required fields: [";
  25. for (let i = 0; i < missing.length; i ++){
  26. message += missing[i];
  27. if (i < missing.length - 1) message += ", ";
  28. }
  29. message += "].";
  30. res.status(400).send(message);
  31. return;
  32. }
  33. const name = req.body.name;
  34. const email = req.body.email;
  35. const subject = req.body.subject;
  36. const text = req.body.text;
  37. const lang = req.body.lang;
  38. //const user = User.findActive().id;
  39. const user = (await User.findOne({where: {active: true}})).id;
  40. console.log("ACTIVES: " + user);
  41. // Create a message
  42. const message = {
  43. userId: user, name: name, email: email, subject: subject, text: text, lang: lang
  44. };
  45. // Save Project in the database
  46. Message.create(message)
  47. .then(data => {res.send(data);})
  48. .catch(err => {
  49. logger.error("Error creating message: " + err);
  50. res.status(500).send("Error creating message.");
  51. });
  52. };