From 40224ab18d2367455b8a0e2259f2fc2f1101179c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Tue, 26 Mar 2019 20:03:11 +0100 Subject: [PATCH] Fix bug if `id` is undefined on post route @itbsStefan this is the fix for the bug during our pair-programming. The request to the server was returning *all* posts if `id` was undefined and the post for redirecting was the most recently created. --- webapp/pages/post/_id.vue | 11 +++++++---- webapp/pages/profile/_id.vue | 9 ++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/webapp/pages/post/_id.vue b/webapp/pages/post/_id.vue index 6863e3ca6..5870a1867 100644 --- a/webapp/pages/post/_id.vue +++ b/webapp/pages/post/_id.vue @@ -77,7 +77,7 @@ export default { error, app: { apolloProvider } } = context - const idOrSlug = id + const idOrSlug = id || slug const variables = { idOrSlug } const client = apolloProvider.defaultClient @@ -87,13 +87,16 @@ export default { response = await client.query({ query: queryId, variables }) post = response.data.Post[0] if (post && post.slug === slug) return // all good - if (post && post.slug !== slug) redirect(`/post/${post.id}/${post.slug}`) + if (post && post.slug !== slug) { + return redirect(`/post/${post.id}/${post.slug}`) + } response = await client.query({ query: querySlug, variables }) post = response.data.Post[0] - if (post) redirect(`/post/${post.id}/${post.slug}`) + if (post) return redirect(`/post/${post.id}/${post.slug}`) - return error({ statusCode: 404 }) + const message = 'This post could not be found' + return error({ statusCode: 404, message }) } } diff --git a/webapp/pages/profile/_id.vue b/webapp/pages/profile/_id.vue index ad9772358..382200c82 100644 --- a/webapp/pages/profile/_id.vue +++ b/webapp/pages/profile/_id.vue @@ -40,13 +40,16 @@ export default { response = await client.query({ query: queryId, variables }) user = response.data.User[0] if (user && user.slug === slug) return // all good - if (user && user.slug !== slug) redirect(`/profile/${user.id}/${user.slug}`) + if (user && user.slug !== slug) { + return redirect(`/profile/${user.id}/${user.slug}`) + } response = await client.query({ query: querySlug, variables }) user = response.data.User[0] - if (user) redirect(`/profile/${user.id}/${user.slug}`) + if (user) return redirect(`/profile/${user.id}/${user.slug}`) - return error({ statusCode: 404 }) + const message = 'This user could not be found' + return error({ statusCode: 404, message }) } }