From 50ff0913cef9a1cb3e0ee5a179cda01d9c5f9206 Mon Sep 17 00:00:00 2001 From: t03i Date: Wed, 20 Nov 2024 10:00:34 +0100 Subject: [PATCH] fix(frontend): more graceful handling for TMAlphaFold (#10) --- frontend/src/lib/external/tmAlphaFold.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/frontend/src/lib/external/tmAlphaFold.ts b/frontend/src/lib/external/tmAlphaFold.ts index a12c6df..e1c8a87 100644 --- a/frontend/src/lib/external/tmAlphaFold.ts +++ b/frontend/src/lib/external/tmAlphaFold.ts @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 import { createQuery } from '@tanstack/svelte-query'; -import { type Readable } from 'svelte/store'; import axios from 'axios'; import type { PublicAnnotation, AnnotationData } from '$lib/client/model'; @@ -37,9 +36,18 @@ const tmalphafold_parse_response = (body: any, up_name: string): AnnotationData export const getTMAlphaFoldAnnotation = async (up_name: string, signal: AbortSignal) => { const url = tmalphafold_query_url(up_name); - const { data } = await axios.get(url); - return tmalphafold_parse_response(data, up_name); - }; + try { + const { data } = await axios.get(url); + return tmalphafold_parse_response(data, up_name); + } catch (error) { + if (axios.isAxiosError(error) && error.response?.status === 500) { + // Return empty annotation data when the server indicates no data is available + return { annotations: [] }; + } + // Re-throw other errors + throw error; + } +}; // TODO better solution for queryClient