first commit
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
import { useMutation, useQuery } from '@tanstack/vue-query'
|
||||
|
||||
import {
|
||||
apiAddAdminTerm,
|
||||
apiAddAdminTermCourses,
|
||||
apiAddAdminTermStudents,
|
||||
apiChangeAdminTermStatus,
|
||||
apiCloneAdminTerm,
|
||||
apiDeleteAdminTerm,
|
||||
apiGetAdminTerms,
|
||||
apiGetAdminTermCourses,
|
||||
apiGetAdminTermStudents,
|
||||
apiRemoveAdminTermCourse,
|
||||
apiRemoveAdminTermStudent,
|
||||
apiShowAdminTerm,
|
||||
apiToggleAdminTermStudentLeave,
|
||||
apiUpdateAdminTerm,
|
||||
} from '@/services/api/admin-terms'
|
||||
import { cleanFilters } from '@/utils/clean-filters'
|
||||
|
||||
export const adminTermsKeys = {
|
||||
all: ['admin', 'terms'],
|
||||
list: (filters, pagination) => ['admin', 'terms', 'list', filters, pagination],
|
||||
detail: (id) => ['admin', 'terms', 'detail', id],
|
||||
students: (termId, filters, pagination) => [
|
||||
'admin',
|
||||
'terms',
|
||||
'students',
|
||||
termId,
|
||||
filters,
|
||||
pagination,
|
||||
],
|
||||
courses: (termId, filters, pagination) => [
|
||||
'admin',
|
||||
'terms',
|
||||
'courses',
|
||||
termId,
|
||||
filters,
|
||||
pagination,
|
||||
],
|
||||
}
|
||||
|
||||
export const useAdminTermsListQuery = (filtersRef, paginationRef, options = {}) =>
|
||||
useQuery({
|
||||
queryKey: ['admin', 'terms', 'list', filtersRef, paginationRef],
|
||||
queryFn: () => apiGetAdminTerms({ ...cleanFilters(filtersRef.value), ...paginationRef.value }),
|
||||
...options,
|
||||
})
|
||||
|
||||
export const useAdminTermQuery = (idRef, options = {}) =>
|
||||
useQuery({
|
||||
queryKey: ['admin', 'terms', 'detail', idRef],
|
||||
queryFn: () => apiShowAdminTerm(idRef.value),
|
||||
select: (response) => response?.data ?? response,
|
||||
...options,
|
||||
})
|
||||
|
||||
export const useAddAdminTermMutation = () =>
|
||||
useMutation({ mutationFn: (payload) => apiAddAdminTerm(payload) })
|
||||
|
||||
export const useUpdateAdminTermMutation = () =>
|
||||
useMutation({ mutationFn: ({ id, payload }) => apiUpdateAdminTerm(id, payload) })
|
||||
|
||||
export const useDeleteAdminTermMutation = () =>
|
||||
useMutation({ mutationFn: (id) => apiDeleteAdminTerm(id) })
|
||||
|
||||
export const useCloneAdminTermMutation = () =>
|
||||
useMutation({ mutationFn: (id) => apiCloneAdminTerm(id) })
|
||||
|
||||
export const useChangeAdminTermStatusMutation = () =>
|
||||
useMutation({ mutationFn: ({ id, payload }) => apiChangeAdminTermStatus(id, payload) })
|
||||
|
||||
export const useAdminTermStudentsQuery = (termIdRef, filtersRef, paginationRef, options = {}) =>
|
||||
useQuery({
|
||||
queryKey: ['admin', 'terms', 'students', termIdRef, filtersRef, paginationRef],
|
||||
queryFn: () =>
|
||||
apiGetAdminTermStudents(termIdRef.value, {
|
||||
...cleanFilters(filtersRef.value),
|
||||
...paginationRef.value,
|
||||
}),
|
||||
...options,
|
||||
})
|
||||
|
||||
export const useAddAdminTermStudentsMutation = () =>
|
||||
useMutation({
|
||||
mutationFn: ({ termId, payload }) => apiAddAdminTermStudents(termId, payload),
|
||||
})
|
||||
|
||||
export const useRemoveAdminTermStudentMutation = () =>
|
||||
useMutation({
|
||||
mutationFn: ({ termId, userId }) => apiRemoveAdminTermStudent(termId, userId),
|
||||
})
|
||||
|
||||
export const useToggleAdminTermStudentLeaveMutation = () =>
|
||||
useMutation({
|
||||
mutationFn: ({ termId, userId, payload }) =>
|
||||
apiToggleAdminTermStudentLeave(termId, userId, payload),
|
||||
})
|
||||
|
||||
export const useAdminTermCoursesQuery = (termIdRef, filtersRef, paginationRef, options = {}) =>
|
||||
useQuery({
|
||||
queryKey: ['admin', 'terms', 'courses', termIdRef, filtersRef, paginationRef],
|
||||
queryFn: () =>
|
||||
apiGetAdminTermCourses(termIdRef.value, {
|
||||
...cleanFilters(filtersRef?.value || {}),
|
||||
...paginationRef?.value,
|
||||
}),
|
||||
...options,
|
||||
})
|
||||
|
||||
export const useAddAdminTermCoursesMutation = () =>
|
||||
useMutation({
|
||||
mutationFn: ({ termId, payload }) => apiAddAdminTermCourses(termId, payload),
|
||||
})
|
||||
|
||||
export const useRemoveAdminTermCourseMutation = () =>
|
||||
useMutation({
|
||||
mutationFn: ({ termId, courseId }) => apiRemoveAdminTermCourse(termId, courseId),
|
||||
})
|
||||
Reference in New Issue
Block a user