diff --git a/webapp/mixins/persistentLinks.js b/webapp/mixins/persistentLinks.js index 0abe37c03..164ccea41 100644 --- a/webapp/mixins/persistentLinks.js +++ b/webapp/mixins/persistentLinks.js @@ -10,22 +10,24 @@ export default function (options = {}) { } = context const idOrSlug = id || slug - const variables = { idOrSlug } - const client = apolloProvider.defaultClient + if (idOrSlug) { + const variables = { idOrSlug } + const client = apolloProvider.defaultClient - let response - let resource - response = await client.query({ query: queryId, variables }) - resource = response.data[Object.keys(response.data)[0]][0] - if (resource && resource.slug === slug) return // all good - if (resource && resource.slug !== slug) { - return redirect(`/${path}/${resource.id}/${resource.slug}`) + let response + let resource + response = await client.query({ query: queryId, variables }) + resource = response.data[Object.keys(response.data)[0]][0] + if (resource && resource.slug === slug) return // all good + if (resource && resource.slug !== slug) { + return redirect(`/${path}/${resource.id}/${resource.slug}`) + } + + response = await client.query({ query: querySlug, variables }) + resource = response.data[Object.keys(response.data)[0]][0] + if (resource) return redirect(`/${path}/${resource.id}/${resource.slug}`) } - response = await client.query({ query: querySlug, variables }) - resource = response.data[Object.keys(response.data)[0]][0] - if (resource) return redirect(`/${path}/${resource.id}/${resource.slug}`) - return error({ statusCode: 404, key: message }) }, }