Files
svelte-formula11/src/routes/data/raceresults/+page.server.ts
Christoph Urlacher 346fdb3b75
All checks were successful
Build Formula11 Docker Image / pocketbase-docker (push) Successful in 29s
Skeleton: Fetch static data (teams/drivers/races/substitutions) in global layout asynchronously
2025-02-03 22:34:07 +01:00

56 lines
1.8 KiB
TypeScript

import {
form_data_clean,
form_data_ensure_keys,
form_data_get_and_remove_id,
form_data_remove,
} from "$lib/form";
import type { Driver, Graphic, Race, RaceResult } from "$lib/schema";
import type { Actions, PageServerLoad } from "./$types";
export const actions = {
create_raceresult: async ({ request, locals }) => {
if (!locals.admin) return { unauthorized: true };
const data: FormData = form_data_clean(await request.formData());
form_data_ensure_keys(data, ["race", "pxxs"]);
form_data_remove(data, ["pxxs_codes", "dnfs_codes"]);
await locals.pb.collection("raceresults").create(data);
},
update_raceresult: async ({ request, locals }) => {
if (!locals.admin) return { unauthorized: true };
const data: FormData = form_data_clean(await request.formData());
form_data_remove(data, ["pxxs_codes", "dnfs_codes"]);
const id: string = form_data_get_and_remove_id(data);
console.dir(data, { depth: null });
await locals.pb.collection("raceresults").update(id, data);
},
delete_raceresult: async ({ request, locals }) => {
if (!locals.admin) return { unauthorized: true };
const data: FormData = form_data_clean(await request.formData());
form_data_remove(data, ["pxxs_codes", "dnfs_codes"]);
const id: string = form_data_get_and_remove_id(data);
await locals.pb.collection("raceresults").delete(id);
},
} as Actions;
export const load: PageServerLoad = async ({ fetch, locals }) => {
// TODO: Duplicated code from racepicks/+page.server.ts
const fetch_raceresults = async (): Promise<RaceResult[]> => {
const raceresults: RaceResult[] = await locals.pb.collection("raceresultsdesc").getFullList();
return raceresults;
};
return {
results: await fetch_raceresults(),
};
};