diff --git a/pages/event/_id.vue b/pages/event/_id.vue index fd7df3f0..857a0b00 100644 --- a/pages/event/_id.vue +++ b/pages/event/_id.vue @@ -95,9 +95,13 @@ export default { console.error(e) } }, - async asyncData ( { $axios, params }) { - const event = await $axios.$get(`/event/${params.id}`) - return { event, id: params.id } + async asyncData ( { $axios, params, error }) { + try { + const event = await $axios.$get(`/event/${params.id}`) + return { event, id: params.id } + } catch(e) { + error({ statusCode: 404, message: 'Event not found'}) + } }, computed: { ...mapGetters(['filteredEvents']), diff --git a/server/api/controller/event.js b/server/api/controller/event.js index ffe71d4a..20e22d9c 100644 --- a/server/api/controller/event.js +++ b/server/api/controller/event.js @@ -84,7 +84,7 @@ const eventController = { // TODO retrieve next/prev event also // select id, start_datetime, title from events where start_datetime > (select start_datetime from events where id=89) order by start_datetime limit 20; async get(req, res) { - const is_admin = req.user.is_admin + const is_admin = req.user && req.user.is_admin const id = req.params.event_id let event = await Event.findByPk(id, { plain: true, diff --git a/server/api/index.js b/server/api/index.js index c6e10e7c..17092de1 100644 --- a/server/api/index.js +++ b/server/api/index.js @@ -87,7 +87,7 @@ api.get('/settings', settingsController.getAllRequest) api.post('/settings', jwt, fillUser, isAdmin, settingsController.setRequest) // get event -api.get('/event/:event_id', eventController.get) +api.get('/event/:event_id', jwt, fillUser, eventController.get) // confirm event api.get('/event/confirm/:event_id', jwt, isAuth, isAdmin, eventController.confirm)