diff --git a/routes/admin/participants.js b/routes/admin/participants.js index ea618907..69d69006 100644 --- a/routes/admin/participants.js +++ b/routes/admin/participants.js @@ -10,7 +10,7 @@ const participants = require('../../service/participants'); const tshirts = require('../../service/tshirts'); const editUrlHelper = require('../../domain/editUrlHelper'); const costCalculator = require('../../domain/costCalculator'); -const mails = require('../../service/util/mails'); +const registration = require('../../service/registration'); //TODO Move those 2 method out of the Ctrl. @@ -34,18 +34,18 @@ router.get('/', isAuthenticated, (req, res) => { addEditUrlTo(allParticipants); Q.all(allParticipants.map(tshirts.findAndAddTo)) .then(() => { - addAmountTo(allParticipants); - res.render('admin/list', {participants: allParticipants}); + addAmountTo(allParticipants); + res.render('admin/list', {participants: allParticipants}); }); }); }); router.post('/resend-mail', isAuthenticated, (req, res) => { - participants.get.byId(req.body.participantid).then((participant) => { - // TODO: refactor to server - mails.sendStatusEmail(participant, 'Lauf gegen Rechts 2016 - Infos zum Lauf', 'views/participants/bulkmail.pug'); - res.render('admin/sentMail'); - }); + participants.get.byId(req.body.participantid) + .then((participant) => { + return registration.sendConfirmationMail(participant, participant.paymenttoken); + }) + .then(res.render('admin/sentMail')); }); module.exports = router; diff --git a/service/participants.js b/service/participants.js index c0fb501d..447c38c0 100644 --- a/service/participants.js +++ b/service/participants.js @@ -256,10 +256,10 @@ participants.bulkmail = () => { participants.get.confirmed().then(confirmed => { participants.get.registered().then(unconfirmed => { _.forEach(confirmed, participant => { - sendConfirmationMailTo(participant); + sendInfoMailTo(participant); }); _.forEach(unconfirmed, participant => { - sendConfirmationMailTo(participant); + sendInfoMailTo(participant); }); deferred.resolve(); }); @@ -268,20 +268,8 @@ participants.bulkmail = () => { return deferred.promise; }; -participants.confirmationMail = (id) => { - const deferred = Q.defer(); - - participants.get.byId(id).then((participant) => { - sendConfirmationMailTo(participant); - deferred.resolve(); - }) - .fail(deferred.reject); - - return deferred.promise; -}; - -function sendConfirmationMailTo(participant) { - mails.sendStatusEmail(participant, 'Lauf gegen Rechts 2016 - Infos zum Lauf', 'views/participants/bulkmail.pug'); +function sendInfoMailTo(participant) { + mails.sendStatusEmail(participant, 'Lauf gegen Rechts - Infos zum Lauf', 'views/participants/bulkmail.pug'); } module.exports = participants; diff --git a/service/registration.js b/service/registration.js index a4c1f63c..44685026 100644 --- a/service/registration.js +++ b/service/registration.js @@ -57,7 +57,7 @@ registration.confirm = (participantId) => { return deferred.promise; }; -function sendConfirmationMail(participant, paymentToken) { +registration.sendConfirmationMail = (participant, paymentToken) => { pug.renderFile('views/registration/confirmationText.pug', { name: participant.firstname, @@ -68,10 +68,10 @@ function sendConfirmationMail(participant, paymentToken) { startnr: participant.start_number }, (error, html) => { - mails.sendEmail(participant.email, 'Lauf Gegen Rechts: Registrierung erfolgreich', html, error); + return mails.sendEmail(participant.email, 'Lauf Gegen Rechts: Registrierung erfolgreich', html, error); } ); -} +}; registration.start = (participant) => { const deferred = Q.defer(); @@ -95,7 +95,7 @@ registration.start = (participant) => { if (calculator.priceFor(p) === 0) { participants.markPayed(id); } - sendConfirmationMail(p, paymentToken); + registration.sendConfirmationMail(p, paymentToken); deferred.resolve({'id': id, 'token': paymentToken, secureid: p.secureID, startnr: p.start_number}); couponcodes.markAsUsed(participant.couponcode); diff --git a/service/util/mails.js b/service/util/mails.js index 89e4694d..9eb611cf 100644 --- a/service/util/mails.js +++ b/service/util/mails.js @@ -28,7 +28,7 @@ service.sendEmail = (address, subject, text, error) => { let transporter = service._nodemailer.createTransport(sendmailTransport({ path: '/usr/sbin/sendmail' })); - transporter.sendMail({ + return transporter.sendMail({ from: config.get('contact.email'), to: address, subject: subject,