diff options
author | lowercasename <raphaelkabo@gmail.com> | 2019-07-26 01:01:55 +0100 |
---|---|---|
committer | lowercasename <raphaelkabo@gmail.com> | 2019-07-26 01:01:55 +0100 |
commit | 7dcd467bc555a06a4a75b147739cfd1236cb34a8 (patch) | |
tree | 11fc5f1733f37a13a8ec558fa461afef828e6cb7 | |
parent | 057696b4f7934571815b5ca92d96ecf79d827c34 (diff) |
Fixed event page route to avoid uncaught errors
-rwxr-xr-x | routes.js | 109 |
1 files changed, 58 insertions, 51 deletions
@@ -132,66 +132,73 @@ router.get('/:eventID', (req, res) => { id: req.params.eventID }) .then((event) => { - parsedLocation = event['location'].replace(/\s+/g, '+'); - if (moment(event.end).isSame(event.start, 'day')){ - // Happening during one day - displayDate = moment(event.start).format('dddd D MMMM YYYY [<span class="text-muted">from</span>] h:mm a') + moment(event.end).format(' [<span class="text-muted">to</span>] h:mm a'); - } - else { - displayDate = moment(event.start).format('dddd D MMMM YYYY [<span class="text-muted">at</span>] h:mm a') + moment(event.end).format(' [<span class="text-muted">–</span>] dddd D MMMM YYYY [<span class="text-muted">at</span>] h:mm a'); - } - parsedStart = moment(event.start).format('YYYYMMDD[T]HHmmss'); - parsedEnd = moment(event.end).format('YYYYMMDD[T]HHmmss'); - let eventHasConcluded = false; - if (moment(event.end).isBefore(moment())){ - eventHasConcluded = true; - } - fromNow = moment(event.start).fromNow(); - parsedDescription = marked(event.description); - eventEditToken = event.editToken; + if (event) { + parsedLocation = event.location.replace(/\s+/g, '+'); + if (moment(event.end).isSame(event.start, 'day')){ + // Happening during one day + displayDate = moment(event.start).format('dddd D MMMM YYYY [<span class="text-muted">from</span>] h:mm a') + moment(event.end).format(' [<span class="text-muted">to</span>] h:mm a'); + } + else { + displayDate = moment(event.start).format('dddd D MMMM YYYY [<span class="text-muted">at</span>] h:mm a') + moment(event.end).format(' [<span class="text-muted">–</span>] dddd D MMMM YYYY [<span class="text-muted">at</span>] h:mm a'); + } + parsedStart = moment(event.start).format('YYYYMMDD[T]HHmmss'); + parsedEnd = moment(event.end).format('YYYYMMDD[T]HHmmss'); + let eventHasConcluded = false; + if (moment(event.end).isBefore(moment())){ + eventHasConcluded = true; + } + fromNow = moment(event.start).fromNow(); + parsedDescription = marked(event.description); + eventEditToken = event.editToken; - escapedName = event.name.replace(/\s+/g, '+'); + escapedName = event.name.replace(/\s+/g, '+'); - let eventHasCoverImage = false; - if( event.image ) { - eventHasCoverImage = true; - } - else { - eventHasCoverImage = false; - } - let eventHasHost = false; - if( event.hostName ) { - eventHasHost = true; - } - else { - eventHasHost = false; - } - let firstLoad = false; - if (event.firstLoad === true) { - firstLoad = true; - Event.findOneAndUpdate({id: req.params.eventID}, {firstLoad: false}, function(err, raw) { - if (err) { - res.send(err); - } - }); - } - let editingEnabled = false; - if (Object.keys(req.query).length !== 0) { - if (!req.query.e) { - editingEnabled = false; - console.log("No edit token set"); + let eventHasCoverImage = false; + if( event.image ) { + eventHasCoverImage = true; + } + else { + eventHasCoverImage = false; + } + let eventHasHost = false; + if( event.hostName ) { + eventHasHost = true; } else { - if (req.query.e == eventEditToken){ - editingEnabled = true; + eventHasHost = false; + } + let firstLoad = false; + if (event.firstLoad === true) { + firstLoad = true; + Event.findOneAndUpdate({id: req.params.eventID}, {firstLoad: false}, function(err, raw) { + if (err) { + res.send(err); + } + }); + } + let editingEnabled = false; + if (Object.keys(req.query).length !== 0) { + if (!req.query.e) { + editingEnabled = false; + console.log("No edit token set"); } else { - editingEnabled = false; + if (req.query.e == eventEditToken){ + editingEnabled = true; + } + else { + editingEnabled = false; + } } } + res.set("X-Robots-Tag", "noindex"); + res.render('event', {title: event.name, escapedName: escapedName, eventData: event, parsedLocation: parsedLocation, parsedStart: parsedStart, parsedEnd: parsedEnd, displayDate: displayDate, fromNow: fromNow, parsedDescription: parsedDescription, editingEnabled: editingEnabled, eventHasCoverImage: eventHasCoverImage, eventHasHost: eventHasHost, firstLoad: firstLoad, eventHasConcluded: eventHasConcluded }) + } + else { + res.status(404); + res.render('404', { url: req.url }); } - res.set("X-Robots-Tag", "noindex"); - res.render('event', {title: event.name, escapedName: escapedName, eventData: event, parsedLocation: parsedLocation, parsedStart: parsedStart, parsedEnd: parsedEnd, displayDate: displayDate, fromNow: fromNow, parsedDescription: parsedDescription, editingEnabled: editingEnabled, eventHasCoverImage: eventHasCoverImage, eventHasHost: eventHasHost, firstLoad: firstLoad, eventHasConcluded: eventHasConcluded }) + }) .catch((err) => { addToLog("displayEvent", "error", "Attempt to display event " + req.params.eventID + " failed with error: " + err); |