Files
banu-front/src/services/query/student-missionary.js
T
sajjadtalkhabi c82701888a fix
2026-05-15 17:12:51 +03:30

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,
})