Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cdc6614c63 |
@@ -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",
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -149,41 +149,34 @@ 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) {
|
const update = {};
|
||||||
res.json({
|
update[req.body.prop] = req.body.value;
|
||||||
success: false,
|
Person.update(update, {
|
||||||
err: 'RSVP end date has elapsed',
|
where: {
|
||||||
});
|
key: req.body.key,
|
||||||
} else {
|
},
|
||||||
const update = {};
|
}).then(() => {
|
||||||
update[req.body.prop] = req.body.value;
|
Person.findOne({
|
||||||
Person.update(update, {
|
where: { key: req.body.key },
|
||||||
where: {
|
}).then(data => {
|
||||||
key: req.body.key,
|
const endDate = rsvpEndDate[(data.ceremony ? 'day' : 'evening')];
|
||||||
},
|
if (new Date() > endDate) {
|
||||||
}).then(() => {
|
return res.json({
|
||||||
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({
|
|
||||||
success: false,
|
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 => {
|
}).catch(err => {
|
||||||
Rollbar.handleError(err);
|
Rollbar.handleError(err);
|
||||||
@@ -192,7 +185,13 @@ app.post('/rsvp/save', (req, res) => {
|
|||||||
err,
|
err,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}).catch(err => {
|
||||||
|
Rollbar.handleError(err);
|
||||||
|
res.json({
|
||||||
|
success: false,
|
||||||
|
err,
|
||||||
|
});
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
Rollbar.handleError(err);
|
Rollbar.handleError(err);
|
||||||
res.json({
|
res.json({
|
||||||
|
|||||||
Reference in New Issue
Block a user