diff --git a/src/modules/404/router/index.js b/src/modules/404/router/index.js index 63ea480..9f9901b 100644 --- a/src/modules/404/router/index.js +++ b/src/modules/404/router/index.js @@ -2,5 +2,6 @@ import notFound from '../view/index.vue' export default { path: '/:pathMatch(.*)*', + name: 'notFound', component: notFound } diff --git a/src/modules/otus/helpers/useOtuPageRequest.js b/src/modules/otus/helpers/useOtuPageRequest.js index f426305..3c72698 100644 --- a/src/modules/otus/helpers/useOtuPageRequest.js +++ b/src/modules/otus/helpers/useOtuPageRequest.js @@ -4,9 +4,13 @@ export function useOtuPageRequest(key, requestFunction) { const store = useOtuPageRequestStore() const request = requestFunction() - request.then((response) => { - store.setRequest(key, response) - }) + request + .then((response) => { + store.setRequest(key, response) + }) + .catch((error) => { + store.setRequest(key, error.response) + }) return request } diff --git a/src/modules/otus/store/store.js b/src/modules/otus/store/store.js index 61ba11d..5be2d02 100644 --- a/src/modules/otus/store/store.js +++ b/src/modules/otus/store/store.js @@ -52,10 +52,17 @@ export const useOtuStore = defineStore('otuStore', { requestStore.$reset() - await this.loadOtu(otuId) - await this.loadTaxon(this.otu.taxon_name_id) + try { + await this.loadOtu(otuId) + await this.loadTaxon(this.otu.taxon_name_id) + } catch (error) { + return false + } + await this.loadCatalog(this.otu.taxon_name_id) await this.loadTaxonomy(otuId) + + return true }, async loadImages(otuId) { diff --git a/src/modules/otus/views/Index.vue b/src/modules/otus/views/Index.vue index b315512..bd2c742 100644 --- a/src/modules/otus/views/Index.vue +++ b/src/modules/otus/views/Index.vue @@ -132,8 +132,13 @@ onBeforeUnmount(() => { async function loadInitialData() { store.$reset() - await store.loadInit(route.params.id) - updateMetadata() + const success = await store.loadInit(route.params.id) + + if (success) { + updateMetadata() + } else { + router.replace({ name: 'notFound' }) + } } function updateMetadata() {