summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlowercasename <raphaelkabo@gmail.com>2019-07-26 01:01:55 +0100
committerlowercasename <raphaelkabo@gmail.com>2019-07-26 01:01:55 +0100
commit7dcd467bc555a06a4a75b147739cfd1236cb34a8 (patch)
tree11fc5f1733f37a13a8ec558fa461afef828e6cb7
parent057696b4f7934571815b5ca92d96ecf79d827c34 (diff)
Fixed event page route to avoid uncaught errors
-rwxr-xr-xroutes.js109
1 files changed, 58 insertions, 51 deletions
diff --git a/routes.js b/routes.js
index fe30e9f..0eda9ce 100755
--- a/routes.js
+++ b/routes.js
@@ -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);