diff --git a/package-lock.json b/package-lock.json index 94c3817..84968d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,13 +8,12 @@ "name": "web-pwa", "version": "0.0.1", "dependencies": { - "@owlboard/owlboard-ts": "^3.0.0", "@tabler/icons-svelte": "^3.40.0" }, "devDependencies": { "@eslint/compat": "^2.0.2", "@eslint/js": "^9.39.2", - "@owlboard/owlboard-ts": "^3.0.0", + "@owlboard/owlboard-ts": "^3.0.0-dev.20260319T2004", "@playwright/test": "^1.58.1", "@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^2.50.2", @@ -788,9 +787,9 @@ "license": "MIT" }, "node_modules/@owlboard/owlboard-ts": { - "version": "3.0.0", - "resolved": "https://git.fjla.uk/api/packages/OwlBoard/npm/%40owlboard%2Fowlboard-ts/-/3.0.0/owlboard-ts-3.0.0.tgz", - "integrity": "sha512-ycmBQ8JEwSFDLeRg7pb+g+umljHQ/vqrZ+BIs7qmwZyOVyuCjzny6keiHdhMALiNBDD9yU9DzJpqxry78rCIYg==", + "version": "3.0.0-dev.20260319T2004", + "resolved": "https://git.fjla.uk/api/packages/OwlBoard/npm/%40owlboard%2Fowlboard-ts/-/3.0.0-dev.20260319T2004/owlboard-ts-3.0.0-dev.20260319t2004.tgz", + "integrity": "sha512-pphq1/l/8eOH4C0O7ocwBOUzt0HkCWGUlhy1itzKnQbmog7oPUEdyaxzS4Evw8onLsxZwkyqsLAyK7okYi+4XA==", "dev": true, "license": "GPL-3.0", "dependencies": { @@ -2471,9 +2470,9 @@ } }, "node_modules/flatted": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", - "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, diff --git a/package.json b/package.json index ce242e8..df049c2 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "devDependencies": { "@eslint/compat": "^2.0.2", "@eslint/js": "^9.39.2", - "@owlboard/owlboard-ts": "^3.0.0", + "@owlboard/owlboard-ts": "^3.0.0-dev.20260319T2004", "@playwright/test": "^1.58.1", "@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^2.50.2", @@ -42,7 +42,6 @@ "vitest-browser-svelte": "^2.0.2" }, "dependencies": { - "@tabler/icons-svelte": "^3.40.0", - "@owlboard/owlboard-ts": "^3.0.0" + "@tabler/icons-svelte": "^3.40.0" } } diff --git a/src/lib/owlClient.ts b/src/lib/owlClient.ts new file mode 100644 index 0000000..b6eab3f --- /dev/null +++ b/src/lib/owlClient.ts @@ -0,0 +1,21 @@ +import { OwlBoardClient, ValidationError, ApiError } from "@owlboard/owlboard-ts"; +import { browser, dev } from "$app/environment"; + +// Import the runes containing the API Key config Here... + +const baseUrl: string = browser ? window.location.origin : ''; + +const getBaseUrl = () => { + if (!browser) return ''; + + if (dev) return 'https://test.owlboard.info'; + + return window.location.origin; +} + +export const OwlClient = new OwlBoardClient( + getBaseUrl(), + // API Key Here when ready!!! +) + +export { ValidationError, ApiError }; \ No newline at end of file diff --git a/src/routes/pis/+page.svelte b/src/routes/pis/+page.svelte index 40539c9..92f4ffb 100644 --- a/src/routes/pis/+page.svelte +++ b/src/routes/pis/+page.svelte @@ -3,13 +3,28 @@ import PisCode from '$lib/components/ui/cards/pis/PisCode.svelte'; import Button from '$lib/components/ui/Button.svelte'; 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); - function handleStartEndSearch(start: string, end: string) { + async function handleStartEndSearch(start: string, end: string): Promise { console.log(`PIS Search: ${start}-${end}`); - // Fetch API Results Here + errorState = null; + + try { + results = await OwlClient.pis.getByStartEndCrs(start, end); + } catch (e) { + if (e instanceof ValidationError) { + errorState = { status: 400, message: e.message }; + } else if (e instanceof ApiError) { + errorState = { status: 500, message: e.message }; + } else { + errorState = { status: 0, message: `Unknown Error: ${e.message}` }; + } + } + resultsLoaded = true; } @@ -33,11 +48,15 @@ {:else}
+ {#if errorState} + {errorState.status} + {errorState.message} + {:else} {#if !results.length}

No results found

{:else} -

Unable to load results

- {/if} +

Results Loaded - Display logic not present

+ {/if}{/if}
{/if}