Skip to content
Snippets Groups Projects
Commit 03ce21d5 authored by Emmanuel Salomon's avatar Emmanuel Salomon :fist:
Browse files

Catch errors

parent bd73a8ad
No related branches found
No related tags found
No related merge requests found
......@@ -16,10 +16,13 @@ import { headDocument as head } from '~/libs/helpers'
export default {
name: 'PageSlug',
async asyncData({ $content, params }) {
const document = await $content('pages', params.slug).fetch()
return { document }
async asyncData({ $content, params, error }) {
try {
const document = await $content('pages', params.slug).fetch()
return { document }
} catch (err) {
return error({ statusCode: 404, message: err.message })
}
},
head,
}
......
......@@ -41,19 +41,23 @@ import { headDocument as head } from '~/libs/helpers'
export default {
name: 'BlogSlug',
async asyncData({ $content, params }) {
const document = await $content('blog', params.slug).fetch()
const [prev, next] = await $content('blog')
.only(['title', 'path'])
.sortBy('createdAt', 'asc')
.surround(params.slug)
.fetch()
return {
document,
prev,
next,
async asyncData({ $content, params, error }) {
try {
const document = await $content('blog', params.slug).fetch()
const [prev, next] = await $content('blog')
.only(['title', 'path'])
.sortBy('createdAt', 'asc')
.surround(params.slug)
.fetch()
return {
document,
prev,
next,
}
} catch (err) {
return error({ statusCode: 404, message: err.message })
}
},
head,
......
......@@ -23,10 +23,14 @@ import { headDocument as head } from '~/libs/helpers'
export default {
name: 'FaqSlug',
async asyncData({ $content, params }) {
const document = await $content('faq', params.slug).fetch()
async asyncData({ $content, params, error }) {
try {
const document = await $content('faq', params.slug).fetch()
return { document }
return { document }
} catch (err) {
return error({ statusCode: 404, message: err.message })
}
},
head,
}
......
......@@ -34,25 +34,29 @@ import { reduceResults, headDocument as head } from '~/libs/helpers'
export default {
name: 'LexiqueSlug',
async asyncData({ $content, params }) {
const document = await $content('lexique', params.slug).fetch()
const pagesWithSlot = await $content({ deep: true })
.search(`<lexique>${params.slug}</lexique>`)
.fetch()
const pagesWithProp = await $content({ deep: true })
.search(`<lexique title="${params.slug}">`)
.fetch()
// Merge and deduplicate
const slugs = new Set(pagesWithSlot.map((item) => item.slug))
const results = [
...pagesWithSlot,
...pagesWithProp.filter((item) => !slugs.has(item.slug)),
]
const pagesWithTerm = reduceResults(results)
return { document, pagesWithTerm }
async asyncData({ $content, params, error }) {
try {
const document = await $content('lexique', params.slug).fetch()
const pagesWithSlot = await $content({ deep: true })
.search(`<lexique>${params.slug}</lexique>`)
.fetch()
const pagesWithProp = await $content({ deep: true })
.search(`<lexique title="${params.slug}">`)
.fetch()
// Merge and deduplicate
const slugs = new Set(pagesWithSlot.map((item) => item.slug))
const results = [
...pagesWithSlot,
...pagesWithProp.filter((item) => !slugs.has(item.slug)),
]
const pagesWithTerm = reduceResults(results)
return { document, pagesWithTerm }
} catch (err) {
return error({ statusCode: 404, message: err.message })
}
},
head,
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment