Feat: Medusa react price list (#1258)
* export everything from price lists in core * medusa-js price list * feat: add product list for price lists * feat: add product list for price lists * add price list to admin module * add price list hooks initial * refactor: product list controller * fix: add integration test for price list products * update types * add tests for price lists * update medusa react tests * update update request for price lists * Apply suggestions from code review Co-authored-by: Sebastian Rindom <skrindom@gmail.com> * rename methods * pr feedback * list products from price list * fix errors after merge * update medusa react with medusa-js method name changes * redo changes * update hook names * fix: routes in msw handler Co-authored-by: Sebastian Rindom <skrindom@gmail.com> Co-authored-by: Zakaria El Asri <zakaria.elas@gmail.com>
This commit is contained in:
co-authored by
Sebastian Rindom
Zakaria El Asri
parent
fb33dbaca3
commit
b164977a19
@@ -24,6 +24,7 @@ import AdminRegionsResource from "./regions"
|
||||
import AdminNotificationsResource from "./notifications"
|
||||
import AdminUploadsResource from "./uploads"
|
||||
import AdminProductTagsResource from "./product-tags"
|
||||
import AdminPriceListResource from "./price-lists"
|
||||
|
||||
class Admin extends BaseResource {
|
||||
public auth = new AdminAuthResource(this.client)
|
||||
@@ -35,6 +36,7 @@ class Admin extends BaseResource {
|
||||
public giftCards = new AdminGiftCardsResource(this.client)
|
||||
public invites = new AdminInvitesResource(this.client)
|
||||
public notes = new AdminNotesResource(this.client)
|
||||
public priceLists = new AdminPriceListResource(this.client)
|
||||
public products = new AdminProductsResource(this.client)
|
||||
public productTags = new AdminProductTagsResource(this.client)
|
||||
public productTypes = new AdminProductTypesResource(this.client)
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
import {
|
||||
AdminPostPriceListPricesPricesReq,
|
||||
AdminPostPriceListsPriceListPriceListReq,
|
||||
AdminPostPriceListsPriceListReq,
|
||||
AdminPriceListDeleteRes,
|
||||
AdminPriceListRes,
|
||||
AdminGetPriceListPaginationParams,
|
||||
AdminPriceListsListRes,
|
||||
AdminDeletePriceListPricesPricesReq,
|
||||
AdminPriceListDeleteBatchRes,
|
||||
AdminGetPriceListsPriceListProductsParams,
|
||||
} from "@medusajs/medusa"
|
||||
import qs from "qs"
|
||||
import { ResponsePromise } from "../../typings"
|
||||
import BaseResource from "../base"
|
||||
|
||||
class AdminPriceListResource extends BaseResource {
|
||||
create(
|
||||
payload: AdminPostPriceListsPriceListReq,
|
||||
customHeaders: Record<string, any> = {}
|
||||
): ResponsePromise<AdminPriceListRes> {
|
||||
const path = `/admin/price-lists`
|
||||
return this.client.request("POST", path, payload, {}, customHeaders)
|
||||
}
|
||||
|
||||
update(
|
||||
id: string,
|
||||
payload: AdminPostPriceListsPriceListPriceListReq,
|
||||
customHeaders: Record<string, any> = {}
|
||||
): ResponsePromise<AdminPriceListRes> {
|
||||
const path = `/admin/price-lists/${id}`
|
||||
return this.client.request("POST", path, payload, {}, customHeaders)
|
||||
}
|
||||
|
||||
delete(
|
||||
id: string,
|
||||
customHeaders: Record<string, any> = {}
|
||||
): ResponsePromise<AdminPriceListDeleteRes> {
|
||||
const path = `/admin/price-lists/${id}`
|
||||
return this.client.request("DELETE", path, {}, {}, customHeaders)
|
||||
}
|
||||
|
||||
retrieve(
|
||||
id: string,
|
||||
customHeaders: Record<string, any> = {}
|
||||
): ResponsePromise<AdminPriceListRes> {
|
||||
const path = `/admin/price-lists/${id}`
|
||||
return this.client.request("GET", path, {}, {}, customHeaders)
|
||||
}
|
||||
|
||||
list(
|
||||
query?: AdminGetPriceListPaginationParams,
|
||||
customHeaders: Record<string, any> = {}
|
||||
): ResponsePromise<AdminPriceListsListRes> {
|
||||
let path = `/admin/price-lists/`
|
||||
|
||||
if (query) {
|
||||
const queryString = qs.stringify(query)
|
||||
path = `/admin/price-lists?${queryString}`
|
||||
}
|
||||
|
||||
return this.client.request("GET", path, {}, {}, customHeaders)
|
||||
}
|
||||
|
||||
listProducts(
|
||||
id: string,
|
||||
query?: AdminGetPriceListsPriceListProductsParams,
|
||||
customHeaders: Record<string, any> = {}
|
||||
): ResponsePromise<any> {
|
||||
let path = `/admin/price-lists/${id}/products`
|
||||
|
||||
if (query) {
|
||||
const queryString = qs.stringify(query)
|
||||
path = `/admin/price-lists/${id}/products?${queryString}`
|
||||
}
|
||||
|
||||
return this.client.request("GET", path, {}, {}, customHeaders)
|
||||
}
|
||||
|
||||
addPrices(
|
||||
id: string,
|
||||
payload: AdminPostPriceListPricesPricesReq,
|
||||
customHeaders: Record<string, any> = {}
|
||||
): ResponsePromise<AdminPriceListRes> {
|
||||
const path = `/admin/price-lists/${id}/prices/batch`
|
||||
return this.client.request("POST", path, payload, {}, customHeaders)
|
||||
}
|
||||
|
||||
deletePrices(
|
||||
id: string,
|
||||
payload: AdminDeletePriceListPricesPricesReq,
|
||||
customHeaders: Record<string, any> = {}
|
||||
): ResponsePromise<AdminPriceListDeleteBatchRes> {
|
||||
const path = `/admin/price-lists/${id}/prices/batch`
|
||||
return this.client.request("DELETE", path, payload, {}, customHeaders)
|
||||
}
|
||||
}
|
||||
|
||||
export default AdminPriceListResource
|
||||
Reference in New Issue
Block a user