From ba85bc961a5f2bcdd54f1352e7e11c1637e1f5e0 Mon Sep 17 00:00:00 2001 From: Alina Geesen-Stucky Date: Wed, 10 Jul 2024 22:06:26 +0200 Subject: [PATCH] MNES-1071 minor refactoring, error handling --- .../_components/SubmodelsOverviewCard.tsx | 36 +++++++++++-------- .../submodelRegistryServiceApi.ts | 2 ++ 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/app/[locale]/viewer/_components/SubmodelsOverviewCard.tsx b/src/app/[locale]/viewer/_components/SubmodelsOverviewCard.tsx index 4d887b3..df6084b 100644 --- a/src/app/[locale]/viewer/_components/SubmodelsOverviewCard.tsx +++ b/src/app/[locale]/viewer/_components/SubmodelsOverviewCard.tsx @@ -4,7 +4,7 @@ import { useIsMobile } from 'lib/hooks/UseBreakpoints'; import { messages } from 'lib/i18n/localization'; import { FormattedMessage } from 'react-intl'; import { SubmodelDetail } from './submodel/SubmodelDetail'; -import { Key, Reference, Submodel } from '@aas-core-works/aas-core3.0-typescript/types'; +import { Reference, Submodel } from '@aas-core-works/aas-core3.0-typescript/types'; import { useAsyncEffect } from 'lib/hooks/UseAsyncEffect'; import { SubmodelSorting } from 'app/[locale]/viewer/_components/submodel/sorting/SubmodelSorting'; import { TabSelectorItem, VerticalTabSelector } from 'components/basics/VerticalTabSelector'; @@ -45,19 +45,19 @@ export function SubmodelsOverviewCard(props: SubmodelsOverviewCardProps) { } else { for (const reference of props.smReferences as Reference[]) { try { - const submodelFromRegistry = await submodelRegistryServiceClient.getSubmodelDescriptorsById(reference.keys[0].value); - submodels.push({ - id: submodelFromRegistry.id, - label: submodelFromRegistry.idShort ?? '', - endpoint: submodelFromRegistry.endpoints[0].protocolInformation.href, - }); - } catch (e) { - try { + const submodelFromRegistry = await submodelRegistryServiceClient.getSubmodelDescriptorsById(reference.keys[0].value) + if (submodelFromRegistry) { + submodels.push({ + id: submodelFromRegistry.id, + label: submodelFromRegistry.idShort ?? '', + endpoint: submodelFromRegistry.endpoints[0].protocolInformation.href, + }); + } else { const metadata = await submodelClient.getSubmodelMetaDataById(reference.keys[0].value); submodels.push({ id: reference.keys[0].value, label: metadata.idShort ?? '', metadata }); - } catch (e) { - console.error(e); } + } catch (e) { + console.error(e); } } } @@ -85,9 +85,17 @@ export function SubmodelsOverviewCard(props: SubmodelsOverviewCardProps) { if (selectedSubmodel) { if (selectedSubmodel.endpoint) { - fetchedSubmodel = await getSubmodelFromSubmodelDescriptor(selectedSubmodel.endpoint); - } else { - fetchedSubmodel = await submodelClient.getSubmodelById(selectedSubmodel?.id ?? ''); + try { + fetchedSubmodel = await getSubmodelFromSubmodelDescriptor(selectedSubmodel.endpoint); + } catch(e) { + console.error(e); + } + } if (!registryAasData) { + try { + fetchedSubmodel = await submodelClient.getSubmodelById(selectedSubmodel?.id ?? ''); + } catch(e) { + console.error(e); + } } } diff --git a/src/lib/api/submodel-registry-service/submodelRegistryServiceApi.ts b/src/lib/api/submodel-registry-service/submodelRegistryServiceApi.ts index ec24ed6..2074d6d 100644 --- a/src/lib/api/submodel-registry-service/submodelRegistryServiceApi.ts +++ b/src/lib/api/submodel-registry-service/submodelRegistryServiceApi.ts @@ -24,6 +24,8 @@ export class SubmodelRegistryServiceApi { if (response.ok) { return response.json(); + } else if(response.status == 404) { + return null; } else { throw response; }