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)); });