From 1c99b03554c02869a5ec69c7645de744fce619ce Mon Sep 17 00:00:00 2001 From: Adriaan Jacquet Date: Wed, 9 Apr 2025 19:26:38 +0200 Subject: [PATCH] feat: class queries useClass en useClasses --- frontend/src/queries/classes.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 frontend/src/queries/classes.ts diff --git a/frontend/src/queries/classes.ts b/frontend/src/queries/classes.ts new file mode 100644 index 00000000..68e07cc0 --- /dev/null +++ b/frontend/src/queries/classes.ts @@ -0,0 +1,30 @@ +import { ClassController, type ClassesResponse, type ClassResponse } from "@/controllers/classes"; +import { useQuery, type UseQueryReturnType } from "@tanstack/vue-query"; +import { computed, toValue, type MaybeRefOrGetter } from "vue"; + +const classController = new ClassController(); + +function classesQueryKey() { + return ["students"]; +} +function classQueryKey(classid: string) { + return ["student", classid]; +} + + +export function useClassesQuery(full: MaybeRefOrGetter = true): UseQueryReturnType { + return useQuery({ + queryKey: computed(() => (classesQueryKey())), + queryFn: async () => classController.getAll(toValue(full)), + }); +} + +export function useClassQuery( + id: MaybeRefOrGetter, +): UseQueryReturnType { + return useQuery({ + queryKey: computed(() => classQueryKey(toValue(id)!)), + queryFn: async () => classController.getById(toValue(id)!), + enabled: () => Boolean(toValue(id)), + }); +} \ No newline at end of file