feat: class queries student & teacher DELETE

This commit is contained in:
Adriaan Jacquet 2025-04-09 21:28:04 +02:00
parent 02076212fe
commit 77ca390bd2

View file

@ -98,7 +98,7 @@ export function useClassStudentsQuery(
})
}
export function useCreateClassStudentMutation(): UseMutationReturnType<ClassResponse, Error, {id: string, username: string}, unknown> {
export function useClassAddStudentMutation(): UseMutationReturnType<ClassResponse, Error, {id: string, username: string}, unknown> {
const queryClient = useQueryClient();
return useMutation({
@ -110,6 +110,18 @@ export function useCreateClassStudentMutation(): UseMutationReturnType<ClassResp
});
}
export function useClassDeleteStudentMutation(): UseMutationReturnType<ClassResponse, Error, {id: string, username: string}, unknown> {
const queryClient = useQueryClient();
return useMutation({
mutationFn: async ({ id, username }) => classController.deleteStudent(id, username),
onSuccess: async (data) => {
await queryClient.invalidateQueries({ queryKey: classQueryKey(data.class.id) });
await queryClient.invalidateQueries({ queryKey: classStudentsKey(data.class.id) });
},
});
}
export function useClassTeachersQuery(
id: MaybeRefOrGetter<string | undefined>,
full: MaybeRefOrGetter<boolean> = true
@ -121,7 +133,7 @@ export function useClassTeachersQuery(
});
}
export function useCreateClassTeacherMutation(): UseMutationReturnType<ClassResponse, Error, {id: string, username: string}, unknown> {
export function useClassAddTeacherMutation(): UseMutationReturnType<ClassResponse, Error, {id: string, username: string}, unknown> {
const queryClient = useQueryClient();
return useMutation({
@ -133,6 +145,18 @@ export function useCreateClassTeacherMutation(): UseMutationReturnType<ClassResp
});
}
export function useClassDeleteTeacherMutation(): UseMutationReturnType<ClassResponse, Error, {id: string, username: string}, unknown> {
const queryClient = useQueryClient();
return useMutation({
mutationFn: async ({ id, username }) => classController.deleteTeacher(id, username),
onSuccess: async (data) => {
await queryClient.invalidateQueries({ queryKey: classQueryKey(data.class.id) });
await queryClient.invalidateQueries({ queryKey: classTeachersKey(data.class.id) });
},
});
}
export function useClassTeacherInvitationsQuery(
id: MaybeRefOrGetter<string | undefined>,
full: MaybeRefOrGetter<boolean> = true