diff --git a/package.json b/package.json index 15feb1f..db6c2f5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wedding", - "version": "1.1.0", + "version": "1.2.0", "private": true, "engines": { "node": ">=6.5", diff --git a/src/routes/rsvp/index.js b/src/routes/rsvp/index.js index 7142fef..4c3b8e7 100644 --- a/src/routes/rsvp/index.js +++ b/src/routes/rsvp/index.js @@ -6,13 +6,13 @@ import NotFound from '../notFound/NotFound'; import { rsvpEndDate, getRsvpEnd } from '../../config'; let title = 'RSVP'; - +let attending = 'day'; export default { path: '/rsvp/:password', isEditable() { - return new Date() < rsvpEndDate; + return new Date() < rsvpEndDate[attending]; }, async action({ params }) { @@ -35,6 +35,9 @@ export default { }; } + // Assuming all connected guests have the same invite + attending = people[0].ceremony ? 'day' : 'evening'; + return { title, component: ( @@ -42,7 +45,7 @@ export default { diff --git a/src/server.js b/src/server.js index d86d9f6..08b2739 100644 --- a/src/server.js +++ b/src/server.js @@ -149,41 +149,34 @@ app.get('/rsvp/:code', bouncer.block, (req, res, next) => { app.post('/rsvp/save', (req, res) => { try { - if (new Date() > rsvpEndDate) { - res.json({ - success: false, - err: 'RSVP end date has elapsed', - }); - } else { - const update = {}; - update[req.body.prop] = req.body.value; - Person.update(update, { - where: { - key: req.body.key, - }, - }).then(() => { - Person.findOne({ - where: { key: req.body.key }, - }).then(data => { - if (data.completed) { - const attending = `\nAttending: ${data.attending ? 'Yes' : 'No'}`; - const starter = (data.attending && data.starter !== -1) ? `\nStarter: ${starters[data.starter]}` : ''; - const main = (data.attending && data.main !== -1) ? `\nMain: ${mains[data.main]}` : ''; - const dietary = (data.attending && data.dietary) ? `\nDietary requirements: ${data.dietary}` : ''; - - sendSlackMsgWithDebounce(`${data.firstname} ${data.lastname} has saved their RSVP:${attending}${starter}${main}${dietary}`, '#wedding-rsvps', req.body.key); - sendRSVPEmailWithDebounce(data); - } - res.json({ - success: true, - prop: req.body.prop, - }); - }).catch(err => { - Rollbar.handleError(err); - res.json({ + const update = {}; + update[req.body.prop] = req.body.value; + Person.update(update, { + where: { + key: req.body.key, + }, + }).then(() => { + Person.findOne({ + where: { key: req.body.key }, + }).then(data => { + const endDate = rsvpEndDate[(data.ceremony ? 'day' : 'evening')]; + if (new Date() > endDate) { + return res.json({ success: false, - err, + err: 'RSVP end date has elapsed', }); + } else if (data.completed) { + const attending = `\nAttending: ${data.attending ? 'Yes' : 'No'}`; + const starter = (data.attending && data.starter !== -1) ? `\nStarter: ${starters[data.starter]}` : ''; + const main = (data.attending && data.main !== -1) ? `\nMain: ${mains[data.main]}` : ''; + const dietary = (data.attending && data.dietary) ? `\nDietary requirements: ${data.dietary}` : ''; + + sendSlackMsgWithDebounce(`${data.firstname} ${data.lastname} has saved their RSVP:${attending}${starter}${main}${dietary}`, '#wedding-rsvps', req.body.key); + sendRSVPEmailWithDebounce(data); + } + return res.json({ + success: true, + prop: req.body.prop, }); }).catch(err => { Rollbar.handleError(err); @@ -192,7 +185,13 @@ app.post('/rsvp/save', (req, res) => { err, }); }); - } + }).catch(err => { + Rollbar.handleError(err); + res.json({ + success: false, + err, + }); + }); } catch (err) { Rollbar.handleError(err); res.json({