57 lines
1.9 KiB
JavaScript
57 lines
1.9 KiB
JavaScript
import { useQuery } from '@tanstack/vue-query'
|
|
import { cleanFilters } from '@/utils/clean-filters'
|
|
import {
|
|
apiGetMissionaryDispatches,
|
|
apiGetMissionaryNarratives,
|
|
apiGetMissionaryProfile,
|
|
apiGetMissionaryRequests,
|
|
} from '@/services/api/student-missionary'
|
|
|
|
export const missionaryKeys = {
|
|
profile: ['student', 'missionary', 'profile'],
|
|
requests: (filters, pagination) => ['student', 'missionary', 'requests', filters, pagination],
|
|
dispatches: (filters, pagination) => ['student', 'missionary', 'dispatches', filters, pagination],
|
|
narratives: (filters, pagination) => ['student', 'missionary', 'narratives', filters, pagination],
|
|
}
|
|
|
|
export const useMissionaryProfileQuery = (options = {}) =>
|
|
useQuery({
|
|
queryKey: missionaryKeys.profile,
|
|
queryFn: () => apiGetMissionaryProfile(),
|
|
select: (response) => response?.data ?? response,
|
|
...options,
|
|
})
|
|
|
|
export const useMissionaryRequestsQuery = (filtersRef, paginationRef, options = {}) =>
|
|
useQuery({
|
|
queryKey: ['student', 'missionary', 'requests', filtersRef, paginationRef],
|
|
queryFn: () =>
|
|
apiGetMissionaryRequests({
|
|
...cleanFilters(filtersRef.value),
|
|
...paginationRef.value,
|
|
}),
|
|
...options,
|
|
})
|
|
|
|
export const useMissionaryDispatchesQuery = (filtersRef, paginationRef, options = {}) =>
|
|
useQuery({
|
|
queryKey: ['student', 'missionary', 'dispatches', filtersRef, paginationRef],
|
|
queryFn: () =>
|
|
apiGetMissionaryDispatches({
|
|
...cleanFilters(filtersRef.value),
|
|
...paginationRef.value,
|
|
}),
|
|
...options,
|
|
})
|
|
|
|
export const useMissionaryNarrativesQuery = (filtersRef, paginationRef, options = {}) =>
|
|
useQuery({
|
|
queryKey: ['student', 'missionary', 'narratives', filtersRef, paginationRef],
|
|
queryFn: () =>
|
|
apiGetMissionaryNarratives({
|
|
...cleanFilters(filtersRef.value),
|
|
...paginationRef.value,
|
|
}),
|
|
...options,
|
|
})
|