Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const mongoose = require('mongoose');
- const requireLogin = require('../middlewares/requireLogin');
- const requireCredits = require('../middlewares/requireCredits');
- const Mailer = require('../services/Mailer');
- //create model of survey and update it
- const Survey = mongoose.model('surveys');
- const surveyTemplate = require('../services/emailTamplates/surveyTemplate');
- module.exports = app => {
- app.post('/api/surveys', requireLogin, requireCredits, async (req, res) => {
- // is user logged in requireLogin
- // has enough credits requireCredits
- //pass these properties from front end
- const { title, subject, body, recipients } = req.body;
- const survey = new Survey({
- title,
- subject,
- body,
- dateSent: Date.now(),
- _user: req.user.id, //from mongo
- recipients: recipients.split('.').map(email => ({ email: email.trim() }))
- });
- //send email (data, template)
- const mailer = new Mailer(survey, surveyTemplate);
- try {
- await mailer.send();
- await survey.save();
- req.user.credits -= 1;
- const user = await req.user.save();
- res.send(user); // send back user model
- } catch (error) {
- res.status(422).send(err);
- }
- });
- };
Add Comment
Please, Sign In to add comment