Files
web-pwa/src/routes/board/+page.ts

41 lines
890 B
TypeScript

import { LOCATIONS } from '$lib/locations-object.svelte';
import { ApiError, OwlClient, ValidationError } from '$lib/owlClient';
import type { PageLoad } from './$types';
import { error } from '@sveltejs/kit';
export const load: PageLoad = async ({ url, fetch }) => {
const locId = url.searchParams.get('loc');
if (!LOCATIONS.loaded) {
await LOCATIONS.init();
}
if (!locId) {
error(400, {
message: 'Location not provided',
code: 'VALIDATION'
});
}
const BoardLocation = LOCATIONS.find(locId);
if (!BoardLocation) {
error(404, {
message: `Location (${locId.toUpperCase()}) not found`,
code: 'VALIDATION'
});
}
const title = BoardLocation.n || BoardLocation.t || 'Live Arr/Dep';
try {
const boardData = await OwlClient.board.getByLocation(locId, fetch);
return {
title,
BoardLocation,
boardData
};
} catch (e: unknown) {
throw e;
}
};