Files
medusa-store/packages/admin-next/dashboard/src/lib/client/sales-channels.ts
T

79 lines
1.9 KiB
TypeScript

import {
AdminSalesChannelListResponse,
AdminSalesChannelResponse,
} from "@medusajs/types"
import {
AddProductsSalesChannelReq,
CreateSalesChannelReq,
RemoveProductsSalesChannelReq,
UpdateSalesChannelReq,
} from "../../types/api-payloads"
import { SalesChannelDeleteRes } from "../../types/api-responses"
import { deleteRequest, getRequest, postRequest } from "./common"
async function retrieveSalesChannel(id: string, query?: Record<string, any>) {
return getRequest<AdminSalesChannelResponse, Record<string, any>>(
`/admin/sales-channels/${id}`,
query
)
}
async function listSalesChannels(query?: Record<string, any>) {
return getRequest<AdminSalesChannelListResponse, Record<string, any>>(
`/admin/sales-channels`,
query
)
}
async function createSalesChannel(payload: CreateSalesChannelReq) {
return postRequest<AdminSalesChannelResponse>(
`/admin/sales-channels`,
payload
)
}
async function updateSalesChannel(id: string, payload: UpdateSalesChannelReq) {
return postRequest<AdminSalesChannelResponse>(
`/admin/sales-channels/${id}`,
payload
)
}
async function deleteSalesChannel(id: string) {
return deleteRequest<SalesChannelDeleteRes>(`/admin/sales-channels/${id}`)
}
async function batchRemoveProducts(
id: string,
payload: RemoveProductsSalesChannelReq
) {
return postRequest<AdminSalesChannelResponse>(
`/admin/sales-channels/${id}/products`,
{
remove: payload.product_ids,
}
)
}
async function batchAddProducts(
id: string,
payload: AddProductsSalesChannelReq
) {
return postRequest<AdminSalesChannelResponse>(
`/admin/sales-channels/${id}/products`,
{
add: payload.product_ids,
}
)
}
export const salesChannels = {
retrieve: retrieveSalesChannel,
list: listSalesChannels,
create: createSalesChannel,
update: updateSalesChannel,
delete: deleteSalesChannel,
removeProducts: batchRemoveProducts,
addProducts: batchAddProducts,
}