feat: group query full parameter toegevoegd aan keys

This commit is contained in:
Adriaan Jacquet 2025-04-12 18:26:32 +02:00
parent 363eba5745
commit 9bda33123f

View file

@ -7,8 +7,8 @@ import { computed, toValue, type MaybeRefOrGetter } from "vue";
const groupController = new GroupController(); const groupController = new GroupController();
function groupsQueryKey(classid: string, assignmentNumber: number) { function groupsQueryKey(classid: string, assignmentNumber: number, full: boolean) {
return [ "groups", classid, assignmentNumber ]; return [ "groups", classid, assignmentNumber, full ];
} }
function groupQueryKey(classid: string, assignmentNumber: number, groupNumber: number) { function groupQueryKey(classid: string, assignmentNumber: number, groupNumber: number) {
return [ "group", classid, assignmentNumber, groupNumber ]; return [ "group", classid, assignmentNumber, groupNumber ];
@ -31,18 +31,19 @@ function toValues(
classid: MaybeRefOrGetter<string | undefined>, classid: MaybeRefOrGetter<string | undefined>,
assignmentNumber: MaybeRefOrGetter<number | undefined>, assignmentNumber: MaybeRefOrGetter<number | undefined>,
groupNumber: MaybeRefOrGetter<number | undefined>, groupNumber: MaybeRefOrGetter<number | undefined>,
full: MaybeRefOrGetter<boolean>,
) { ) {
return { cid: toValue(classid), an: toValue(assignmentNumber), gn: toValue(groupNumber) }; return { cid: toValue(classid), an: toValue(assignmentNumber), gn: toValue(groupNumber), f: toValue(full) };
} }
export function useGroupsQuery( export function useGroupsQuery(
classid: MaybeRefOrGetter<string | undefined>, classid: MaybeRefOrGetter<string | undefined>,
assignmentNumber: MaybeRefOrGetter<number | undefined>, assignmentNumber: MaybeRefOrGetter<number | undefined>,
): UseQueryReturnType<GroupsResponse, Error> { ): UseQueryReturnType<GroupsResponse, Error> {
const { cid, an, gn } = toValues(classid, assignmentNumber, 1); const { cid, an, f } = toValues(classid, assignmentNumber, 1, true);
return useQuery({ return useQuery({
queryKey: computed(() => (groupsQueryKey(cid!, an!))), queryKey: computed(() => (groupsQueryKey(cid!, an!, f))),
queryFn: async () => groupController.getAll(cid!, an!), queryFn: async () => groupController.getAll(cid!, an!),
enabled: () => checkEnabled(cid, an, 1), enabled: () => checkEnabled(cid, an, 1),
}); });
@ -53,7 +54,7 @@ export function useGroupQuery(
assignmentNumber: number, assignmentNumber: number,
groupNumber: MaybeRefOrGetter<number | undefined>, groupNumber: MaybeRefOrGetter<number | undefined>,
): UseQueryReturnType<GroupResponse, Error> { ): UseQueryReturnType<GroupResponse, Error> {
const { cid, an, gn } = toValues(classid, assignmentNumber, groupNumber); const { cid, an, gn } = toValues(classid, assignmentNumber, groupNumber, true);
return useQuery({ return useQuery({
queryKey: computed(() => groupQueryKey(cid!, an!, gn!)), queryKey: computed(() => groupQueryKey(cid!, an!, gn!)),
@ -68,11 +69,11 @@ export function useGroupSubmissionsQuery(
groupNumber: MaybeRefOrGetter<number | undefined>, groupNumber: MaybeRefOrGetter<number | undefined>,
full: MaybeRefOrGetter<boolean> = true, full: MaybeRefOrGetter<boolean> = true,
): UseQueryReturnType<SubmissionsResponse, Error> { ): UseQueryReturnType<SubmissionsResponse, Error> {
const { cid, an, gn } = toValues(classid, assignmentNumber, groupNumber); const { cid, an, gn, f } = toValues(classid, assignmentNumber, groupNumber, full);
return useQuery({ return useQuery({
queryKey: computed(() => groupSubmissionsQueryKey(cid!, an!, gn!, toValue(full))), queryKey: computed(() => groupSubmissionsQueryKey(cid!, an!, gn!, f)),
queryFn: async () => groupController.getSubmissions(cid!, an!, gn!, toValue(full)), queryFn: async () => groupController.getSubmissions(cid!, an!, gn!, f),
enabled: () => checkEnabled(cid, an, gn), enabled: () => checkEnabled(cid, an, gn),
}); });
} }
@ -83,11 +84,11 @@ export function useGroupQuestionsQuery(
groupNumber: MaybeRefOrGetter<number | undefined>, groupNumber: MaybeRefOrGetter<number | undefined>,
full: MaybeRefOrGetter<boolean> = true, full: MaybeRefOrGetter<boolean> = true,
): UseQueryReturnType<QuestionsResponse, Error> { ): UseQueryReturnType<QuestionsResponse, Error> {
const { cid, an, gn } = toValues(classid, assignmentNumber, groupNumber); const { cid, an, gn, f } = toValues(classid, assignmentNumber, groupNumber, full);
return useQuery({ return useQuery({
queryKey: computed(() => groupQuestionsQueryKey(cid!, an!, gn!, toValue(full))), queryKey: computed(() => groupQuestionsQueryKey(cid!, an!, gn!, f)),
queryFn: async () => groupController.getSubmissions(cid!, an!, gn!, toValue(full)), queryFn: async () => groupController.getSubmissions(cid!, an!, gn!, f),
enabled: () => checkEnabled(cid, an, gn), enabled: () => checkEnabled(cid, an, gn),
}); });
} }