From e59d801c5e08f99001d9b2573c71315e04b3ed8d Mon Sep 17 00:00:00 2001 From: Zeph Levy <171337931+ZephLevy@users.noreply.github.com> Date: Fri, 16 Jan 2026 13:26:26 +0100 Subject: [PATCH] Add frontend server logic for querying a dataset --- frontend/src/lib/server/backend.ts | 56 +++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/frontend/src/lib/server/backend.ts b/frontend/src/lib/server/backend.ts index daa996c..c5f209c 100644 --- a/frontend/src/lib/server/backend.ts +++ b/frontend/src/lib/server/backend.ts @@ -13,18 +13,20 @@ export type Dataset = { description: string; }; -export async function list_datasets(): Promise { - const query = ` - query { - datasets { - id - name - description - } - } - `; - return (await query_graphql<{datasets: Dataset[]}>(query)).datasets; -} +export type Location = { + id: number, + name: string, + lat: number, + lon: number; +}; + +export type Record = { + id: number, + dataset_id: number, + location_id: number | undefined, + timestamp: string, + data: string; +}; async function query_graphql(query: string): Promise { const response = await fetch('http://host.containers.internal:3000/graphql', { @@ -47,3 +49,33 @@ async function query_graphql(query: string): Promise { return result.data!; } + +export async function list_datasets(): Promise { + const query = ` + query { + datasets { + id + name + description + } + } + `; + return (await query_graphql<{ datasets: Dataset[] }>(query)).datasets; +} + +export async function query_dataset(id: string): Promise { + // TODO: Maybe just interpolating the id like this isn't the best way to do it. + const query = ` + query { + queryDataset(id: ${id}) { + id + locationId + data + } + } + `; + + return (await query_graphql<{ + queryDataset: Record, + }>(query)).queryDataset; +}