feat(medusa-react): Add Collection batch (remove, add) endpoints (#1959)

This commit is contained in:
Richard Ward
2022-08-08 12:58:23 +02:00
committed by GitHub
parent a88bf3c76e
commit 2a723dcd4f
4 changed files with 143 additions and 0 deletions

View File

@@ -1,8 +1,10 @@
import {
AdminCollectionsDeleteRes,
AdminCollectionsRes,
AdminDeleteProductsFromCollectionReq,
AdminPostCollectionsCollectionReq,
AdminPostCollectionsReq,
AdminPostProductsToCollectionReq,
} from "@medusajs/medusa"
import { Response } from "@medusajs/medusa-js"
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
@@ -62,3 +64,60 @@ export const useAdminDeleteCollection = (
)
)
}
/**
* Hook returns function for adding multiple products to a collection.
*
* @param id - id of the collection in which products are being added
* @param options
*/
export const useAdminAddProductsToCollection = (
id: string,
options?: UseMutationOptions<
Response<AdminCollectionsRes>,
Error,
AdminPostProductsToCollectionReq
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
(payload: AdminPostProductsToCollectionReq) =>
client.admin.collections.addProducts(id, payload),
buildOptions(
queryClient,
[adminCollectionKeys.lists(), adminCollectionKeys.detail(id)],
options
)
)
}
/**
* Hook returns function for removal of multiple products from a collection.
*
* @param id - id of the collection from which products will be removed
* @param options
*/
export const useAdminRemoveProductsFromCollection = (
id: string,
options?: UseMutationOptions<
Response<AdminCollectionsDeleteRes>,
Error,
AdminDeleteProductsFromCollectionReq
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
(payload: AdminDeleteProductsFromCollectionReq) =>
client.admin.collections.removeProducts(id, payload),
buildOptions(
queryClient,
[adminCollectionKeys.lists(), adminCollectionKeys.detail(id)],
options
)
)
}