From a88bf3c76ea801d2b17227fb2eb8b8d8dbfe1262 Mon Sep 17 00:00:00 2001 From: Richard Ward Date: Sun, 7 Aug 2022 13:22:36 +0200 Subject: [PATCH] feat(medusa-js): Add Collection batch (remove, add) endpoints (#1958) --- .changeset/wild-tables-compete.md | 5 +++ .../src/resources/admin/collections.ts | 32 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 .changeset/wild-tables-compete.md diff --git a/.changeset/wild-tables-compete.md b/.changeset/wild-tables-compete.md new file mode 100644 index 0000000000..31de16fad0 --- /dev/null +++ b/.changeset/wild-tables-compete.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa-js": patch +--- + +Add batch endpoints (remove, add) for Collections to medusa-js diff --git a/packages/medusa-js/src/resources/admin/collections.ts b/packages/medusa-js/src/resources/admin/collections.ts index 3b161dd335..b42d2cceed 100644 --- a/packages/medusa-js/src/resources/admin/collections.ts +++ b/packages/medusa-js/src/resources/admin/collections.ts @@ -5,6 +5,8 @@ import { AdminCollectionsDeleteRes, AdminCollectionsListRes, AdminGetCollectionsParams, + AdminPostProductsToCollectionReq, + AdminDeleteProductsFromCollectionReq, } from "@medusajs/medusa" import qs from "qs" import { ResponsePromise } from "../../typings" @@ -88,6 +90,36 @@ class AdminCollectionsResource extends BaseResource { return this.client.request("GET", path, undefined, {}, customHeaders) } + + /** + * @description Updates products associated with a Product Collection + * @param id the id of the Collection + * @param payload - an object which contains an array of Product IDs to add to the Product Collection + * @param customHeaders + */ + addProducts( + id: string, + payload: AdminPostProductsToCollectionReq, + customHeaders: Record = {} + ): ResponsePromise { + const path = `/admin/collections/${id}/products/batch` + return this.client.request("POST", path, payload, {}, customHeaders) + } + + /** + * @description Removes products associated with a Product Collection + * @param id - the id of the Collection + * @param payload - an object which contains an array of Product IDs to add to the Product Collection + * @param customHeaders + */ + removeProducts( + id: string, + payload: AdminDeleteProductsFromCollectionReq, + customHeaders: Record = {} + ): ResponsePromise { + const path = `/admin/collections/${id}/products/batch` + return this.client.request("DELETE", path, payload, {}, customHeaders) + } } export default AdminCollectionsResource