64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
import apiSlice from './api'
|
|
|
|
export const orderApiSlice = apiSlice.injectEndpoints({
|
|
endpoints: builder => ({
|
|
getOrdersList: builder.query({
|
|
query: ({ page = 1, pageSize = 10 }) => ({
|
|
url: `/api/order/list?page=${page}&page_size=${pageSize}`,
|
|
method: 'GET',
|
|
}),
|
|
providesTags: (result, error, arg) =>
|
|
result
|
|
? [
|
|
...result.data.orders.map(({ _id }) => ({
|
|
type: 'Order',
|
|
id: _id,
|
|
})),
|
|
'Order',
|
|
]
|
|
: ['Order'],
|
|
}),
|
|
|
|
getOrders: builder.query({
|
|
query: ({ page = 1, pageSize = 10 }) => ({
|
|
url: `/api/order?page=${page}&page_size=${pageSize}`,
|
|
method: 'GET',
|
|
}),
|
|
}),
|
|
|
|
getSingleOrder: builder.query({
|
|
query: ({ id }) => ({
|
|
url: `/api/order/${id}`,
|
|
method: 'GET',
|
|
}),
|
|
providesTags: (result, error, arg) => [{ type: 'Order', id: arg.id }],
|
|
}),
|
|
|
|
updateOrder: builder.mutation({
|
|
query: ({ id, body }) => ({
|
|
url: `/api/order/${id}`,
|
|
method: 'PATCH',
|
|
body,
|
|
}),
|
|
invalidatesTags: (result, error, arg) => [{ type: 'Order', id: arg.id }],
|
|
}),
|
|
|
|
createOrder: builder.mutation({
|
|
query: ({ body }) => ({
|
|
url: '/api/order',
|
|
method: 'POST',
|
|
body,
|
|
}),
|
|
invalidatesTags: ['Order'],
|
|
}),
|
|
}),
|
|
})
|
|
|
|
export const {
|
|
useGetOrdersQuery,
|
|
useGetSingleOrderQuery,
|
|
useUpdateOrderMutation,
|
|
useCreateOrderMutation,
|
|
useGetOrdersListQuery,
|
|
} = orderApiSlice
|