diff --git a/src/routes/pis/+page.svelte b/src/routes/pis/+page.svelte index 92f4ffb..b473dee 100644 --- a/src/routes/pis/+page.svelte +++ b/src/routes/pis/+page.svelte @@ -5,33 +5,50 @@ import type { PisObjects } from '@owlboard/api-schema-types'; import { OwlClient, ApiError, ValidationError } from '$lib/owlClient'; + let results = $state([]); let resultsLoaded = $state(false); - let errorState = $state<{status: number, message: message} | null>(null); + let errorState = $state<{status: number, message: string} | null>(null); async function handleStartEndSearch(start: string, end: string): Promise { console.log(`PIS Search: ${start}-${end}`); errorState = null; try { - results = await OwlClient.pis.getByStartEndCrs(start, end); + const response = await OwlClient.pis.getByStartEndCrs(start, end); + results = await response.data || []; } catch (e) { if (e instanceof ValidationError) { errorState = { status: 400, message: e.message }; } else if (e instanceof ApiError) { - errorState = { status: 500, message: e.message }; + console.log(e) + errorState = { status: 20, message: e.message }; } else { errorState = { status: 0, message: `Unknown Error: ${e.message}` }; } + } finally { + resultsLoaded = true; } - - resultsLoaded = true; } - function handleCodeSearch(code: string) { + async function handleCodeSearch(code: string) { console.log(`PIS Search: ${code}`); - // Fetch API Results Here - resultsLoaded = true; + errorState = null; + try { + const response = await OwlClient.pis.getByCode(code); + results = response.data || [] + } catch (e) { + if (e instanceof ValidationError) { + errorState = { status: 400, message: e.message }; + } else if (e instanceof ApiError) { + console.log(e) + errorState = { status: 20, message: e.message }; + } else { + errorState = { status: 0, message: `Unknown Error: ${e.message}` }; + } + } finally { + resultsLoaded = true; + } } function clearResults() { @@ -49,16 +66,21 @@ {:else}
{#if errorState} - {errorState.status} + Error: {errorState.status} {errorState.message} {:else} - {#if !results.length} -

No results found

- {:else} -

Results Loaded - Display logic not present

- {/if}{/if} + {#if results.length} +

{results.length} Result{#if results.length > 1}s{/if} found:

+ {#each results as result} +

{JSON.stringify(result)}

+ {/each} + {:else} +

No matching results

+ {/if} + {/if} +
-
+
{/if} \ No newline at end of file