Guest User

Untitled

a guest
Jan 22nd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. const mongoose = require('mongoose');
  2. const requireLogin = require('../middlewares/requireLogin');
  3. const requireCredits = require('../middlewares/requireCredits');
  4. const Mailer = require('../services/Mailer');
  5. //create model of survey and update it
  6. const Survey = mongoose.model('surveys');
  7. const surveyTemplate = require('../services/emailTamplates/surveyTemplate');
  8.  
  9. module.exports = app => {
  10. app.post('/api/surveys', requireLogin, requireCredits, async (req, res) => {
  11. // is user logged in requireLogin
  12. // has enough credits requireCredits
  13. //pass these properties from front end
  14. const { title, subject, body, recipients } = req.body;
  15. const survey = new Survey({
  16. title,
  17. subject,
  18. body,
  19. dateSent: Date.now(),
  20. _user: req.user.id, //from mongo
  21. recipients: recipients.split('.').map(email => ({ email: email.trim() }))
  22. });
  23. //send email (data, template)
  24. const mailer = new Mailer(survey, surveyTemplate);
  25. try {
  26. await mailer.send();
  27. await survey.save();
  28. req.user.credits -= 1;
  29. const user = await req.user.save();
  30. res.send(user); // send back user model
  31. } catch (error) {
  32. res.status(422).send(err);
  33. }
  34. });
  35. };
Add Comment
Please, Sign In to add comment