65 lines
1.5 KiB
JavaScript
65 lines
1.5 KiB
JavaScript
import apiSlice from './api'
|
|
|
|
export const sliderApiSlice = apiSlice.injectEndpoints({
|
|
endpoints: builder => ({
|
|
getSingleSlider: builder.query({
|
|
query: ({ id }) => ({
|
|
url: `/api/slider/${id}`,
|
|
method: 'GET',
|
|
}),
|
|
providesTags: (result, err, arg) => [{ type: 'Slider', id: arg.id }],
|
|
}),
|
|
|
|
getSliders: builder.query({
|
|
query: ({ category }) => ({
|
|
url: `/api/slider?category=${category}`,
|
|
method: 'GET',
|
|
}),
|
|
providesTags: result =>
|
|
result
|
|
? [
|
|
...result.data.map(({ _id }) => ({
|
|
type: 'Slider',
|
|
id: _id,
|
|
})),
|
|
'Slider',
|
|
]
|
|
: ['Slider'],
|
|
}),
|
|
|
|
updateSlider: builder.mutation({
|
|
query: ({ id, body }) => ({
|
|
url: `/api/slider/${id}`,
|
|
method: 'PUT',
|
|
body,
|
|
}),
|
|
invalidatesTags: (result, err, arg) => [{ type: 'Slider', id: arg.id }],
|
|
}),
|
|
|
|
createSlider: builder.mutation({
|
|
query: ({ body }) => ({
|
|
url: '/api/slider',
|
|
method: 'POST',
|
|
body,
|
|
}),
|
|
invalidatesTags: ['Slider'],
|
|
}),
|
|
|
|
deleteSlider: builder.mutation({
|
|
query: ({ id }) => ({
|
|
url: `/api/slider/${id}`,
|
|
method: 'DELETE',
|
|
}),
|
|
invalidatesTags: ['Slider'],
|
|
}),
|
|
}),
|
|
})
|
|
|
|
export const {
|
|
useGetSingleSliderQuery,
|
|
useUpdateSliderMutation,
|
|
useCreateSliderMutation,
|
|
useDeleteSliderMutation,
|
|
useGetSlidersQuery,
|
|
} = sliderApiSlice
|