30 lines
989 B
TypeScript
30 lines
989 B
TypeScript
import { OwlClient, ApiError, ValidationError, ThrowApiError } from '$lib/owlClient';
|
|
import type { ApiTrainsTrainByHeadcode } from '@owlboard/owlboard-ts';
|
|
import type { PageLoad } from './$types';
|
|
|
|
export const load: PageLoad = async ({ fetch, url }) => {
|
|
const headcode = url.searchParams.get('h');
|
|
let dateParam = url.searchParams.get('d');
|
|
const toc = url.searchParams.get('t') || '';
|
|
|
|
const date: string | Date = dateParam === '' || dateParam === null ? new Date() : dateParam;
|
|
|
|
// Validation removed, handled by the API Client Lib
|
|
|
|
// Declared outside of the try so that it can be used in both the try and catch blocks
|
|
let results: ApiTrainsTrainByHeadcode.TrainByHeadcodeResponse[];
|
|
|
|
try {
|
|
const response = await OwlClient.trains.getByHeadcode(headcode || '', date, toc, fetch);
|
|
|
|
let title = !!headcode ? headcode.toUpperCase() : 'Error';
|
|
results = response.data;
|
|
return {
|
|
title: title,
|
|
results: results
|
|
};
|
|
} catch (e: unknown) {
|
|
ThrowApiError(e);
|
|
}
|
|
};
|