Files
medusa-store/packages/admin-next/dashboard/src/lib/client/collections.ts
Frane Polić d5ac0633f5 feat(dashboard): collection product management (#7333)
* feat: implement collection management

* fix: toasts

* fix: use query keys from the lib

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-05-16 09:07:36 +02:00

57 lines
1.6 KiB
TypeScript

import {
CreateProductCollectionReq,
UpdateProductCollectionProductsReq,
UpdateProductCollectionReq,
} from "../../types/api-payloads"
import {
ProductCollectionDeleteRes,
ProductCollectionListRes,
ProductCollectionRes,
} from "../../types/api-responses"
import { deleteRequest, getRequest, postRequest } from "./common"
async function listProductCollections(query?: Record<string, any>) {
return getRequest<ProductCollectionListRes>(`/admin/collections`, query)
}
async function retrieveProductCollection(
id: string,
query?: Record<string, any>
) {
return getRequest<ProductCollectionRes>(`/admin/collections/${id}`, query)
}
async function updateProductCollection(
id: string,
payload: UpdateProductCollectionReq
) {
return postRequest<ProductCollectionRes>(`/admin/collections/${id}`, payload)
}
async function createProductCollection(payload: CreateProductCollectionReq) {
return postRequest<ProductCollectionRes>(`/admin/collections`, payload)
}
async function updateProductCollectionProducts(
id: string,
payload: UpdateProductCollectionProductsReq
) {
return postRequest<ProductCollectionRes>(
`/admin/collections/${id}/products`,
payload
)
}
async function deleteProductCollection(id: string) {
return deleteRequest<ProductCollectionDeleteRes>(`/admin/collections/${id}`)
}
export const collections = {
list: listProductCollections,
retrieve: retrieveProductCollection,
update: updateProductCollection,
updateProducts: updateProductCollectionProducts,
create: createProductCollection,
delete: deleteProductCollection,
}