Create 2 RSVP end dates

This commit is contained in:
2017-03-29 21:59:05 +01:00
parent 75740699f1
commit cdc6614c63
3 changed files with 40 additions and 38 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "wedding", "name": "wedding",
"version": "1.1.0", "version": "1.2.0",
"private": true, "private": true,
"engines": { "engines": {
"node": ">=6.5", "node": ">=6.5",

View File

@@ -6,13 +6,13 @@ import NotFound from '../notFound/NotFound';
import { rsvpEndDate, getRsvpEnd } from '../../config'; import { rsvpEndDate, getRsvpEnd } from '../../config';
let title = 'RSVP'; let title = 'RSVP';
let attending = 'day';
export default { export default {
path: '/rsvp/:password', path: '/rsvp/:password',
isEditable() { isEditable() {
return new Date() < rsvpEndDate; return new Date() < rsvpEndDate[attending];
}, },
async action({ params }) { async action({ params }) {
@@ -35,6 +35,9 @@ export default {
}; };
} }
// Assuming all connected guests have the same invite
attending = people[0].ceremony ? 'day' : 'evening';
return { return {
title, title,
component: ( component: (
@@ -42,7 +45,7 @@ export default {
<Rsvp <Rsvp
title={title} title={title}
people={people} people={people}
rsvpEnd={getRsvpEnd()} rsvpEnd={getRsvpEnd(attending)}
isEditable={this.isEditable()} isEditable={this.isEditable()}
/> />
</Layout> </Layout>

View File

@@ -149,12 +149,6 @@ app.get('/rsvp/:code', bouncer.block, (req, res, next) => {
app.post('/rsvp/save', (req, res) => { app.post('/rsvp/save', (req, res) => {
try { try {
if (new Date() > rsvpEndDate) {
res.json({
success: false,
err: 'RSVP end date has elapsed',
});
} else {
const update = {}; const update = {};
update[req.body.prop] = req.body.value; update[req.body.prop] = req.body.value;
Person.update(update, { Person.update(update, {
@@ -165,7 +159,13 @@ app.post('/rsvp/save', (req, res) => {
Person.findOne({ Person.findOne({
where: { key: req.body.key }, where: { key: req.body.key },
}).then(data => { }).then(data => {
if (data.completed) { const endDate = rsvpEndDate[(data.ceremony ? 'day' : 'evening')];
if (new Date() > endDate) {
return res.json({
success: false,
err: 'RSVP end date has elapsed',
});
} else if (data.completed) {
const attending = `\nAttending: ${data.attending ? 'Yes' : 'No'}`; const attending = `\nAttending: ${data.attending ? 'Yes' : 'No'}`;
const starter = (data.attending && data.starter !== -1) ? `\nStarter: ${starters[data.starter]}` : ''; const starter = (data.attending && data.starter !== -1) ? `\nStarter: ${starters[data.starter]}` : '';
const main = (data.attending && data.main !== -1) ? `\nMain: ${mains[data.main]}` : ''; const main = (data.attending && data.main !== -1) ? `\nMain: ${mains[data.main]}` : '';
@@ -174,7 +174,7 @@ app.post('/rsvp/save', (req, res) => {
sendSlackMsgWithDebounce(`${data.firstname} ${data.lastname} has saved their RSVP:${attending}${starter}${main}${dietary}`, '#wedding-rsvps', req.body.key); sendSlackMsgWithDebounce(`${data.firstname} ${data.lastname} has saved their RSVP:${attending}${starter}${main}${dietary}`, '#wedding-rsvps', req.body.key);
sendRSVPEmailWithDebounce(data); sendRSVPEmailWithDebounce(data);
} }
res.json({ return res.json({
success: true, success: true,
prop: req.body.prop, prop: req.body.prop,
}); });
@@ -192,7 +192,6 @@ app.post('/rsvp/save', (req, res) => {
err, err,
}); });
}); });
}
} catch (err) { } catch (err) {
Rollbar.handleError(err); Rollbar.handleError(err);
res.json({ res.json({