feat: class queries useClass en useClasses
This commit is contained in:
parent
45ca433e09
commit
1c99b03554
1 changed files with 30 additions and 0 deletions
30
frontend/src/queries/classes.ts
Normal file
30
frontend/src/queries/classes.ts
Normal file
|
@ -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<boolean> = true): UseQueryReturnType<ClassesResponse, Error> {
|
||||||
|
return useQuery({
|
||||||
|
queryKey: computed(() => (classesQueryKey())),
|
||||||
|
queryFn: async () => classController.getAll(toValue(full)),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function useClassQuery(
|
||||||
|
id: MaybeRefOrGetter<string | undefined>,
|
||||||
|
): UseQueryReturnType<ClassResponse, Error> {
|
||||||
|
return useQuery({
|
||||||
|
queryKey: computed(() => classQueryKey(toValue(id)!)),
|
||||||
|
queryFn: async () => classController.getById(toValue(id)!),
|
||||||
|
enabled: () => Boolean(toValue(id)),
|
||||||
|
});
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue