From 83cd7416f5da3a39a5492559d58e836a2a0af36b Mon Sep 17 00:00:00 2001 From: 0x1eef <0x1eef@protonmail.com> Date: Thu, 28 Sep 2023 11:28:34 -0300 Subject: [PATCH] Handle a non-200 status code as an error --- src/js/hooks/useWebService.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/js/hooks/useWebService.ts b/src/js/hooks/useWebService.ts index 048440d..7690613 100644 --- a/src/js/hooks/useWebService.ts +++ b/src/js/hooks/useWebService.ts @@ -8,9 +8,19 @@ export function useWebService(): [Maybe, Maybe] { const [response, setResponse] = useState>(null); const [error, setError] = useState>(null); + function receive(res: Response) { + if (res.status === 200) { + return res.json(); + } else { + const message = "There was an unexpected response from the web service. " + + `The status code was ${res.status}`; + throw new Error(message); + } + } + useEffect(() => { fetch(endpoint) - .then((res) => res.json()) + .then(receive) .then((json) => setResponse(Response(json))) .catch((err) => setError(err)); });