Files
medusa-store/packages/admin-ui/ui/src/services/api.js
2023-03-03 10:09:16 +01:00

730 lines
19 KiB
JavaScript

import medusaRequest from "./request"
const removeNullish = (obj) =>
Object.entries(obj).reduce((a, [k, v]) => (v ? ((a[k] = v), a) : a), {})
const buildQueryFromObject = (search, prefix = "") =>
Object.entries(search)
.map(([key, value]) =>
typeof value === "object"
? buildQueryFromObject(value, key)
: `${prefix ? `${prefix}[${key}]` : `${key}`}=${value}`
)
.join("&")
export default {
returnReasons: {
retrieve(id) {
const path = `/admin/return-reasons/${id}`
return medusaRequest("GET", path)
},
list() {
const path = `/admin/return-reasons`
return medusaRequest("GET", path)
},
create(payload) {
const path = `/admin/return-reasons`
return medusaRequest("POST", path, payload)
},
update(id, payload) {
const path = `/admin/return-reasons/${id}`
return medusaRequest("POST", path, payload)
},
delete(id) {
const path = `/admin/return-reasons/${id}`
return medusaRequest("DELETE", path)
},
},
apps: {
authorize(data) {
const path = `/admin/apps/authorizations`
return medusaRequest("POST", path, data)
},
list() {
const path = `/admin/apps`
return medusaRequest("GET", path)
},
},
auth: {
session() {
const path = `/admin/auth`
return medusaRequest("GET", path)
},
authenticate(details) {
const path = `/admin/auth`
return medusaRequest("POST", path, details)
},
deauthenticate(details) {
const path = `/admin/auth`
return medusaRequest("DELETE", path)
},
},
notifications: {
list(search = {}) {
const params = Object.keys(search)
.map((k) => `${k}=${search[k]}`)
.join("&")
const path = `/admin/notifications${params && `?${params}`}`
return medusaRequest("GET", path)
},
resend(id, config) {
const path = `/admin/notifications/${id}/resend`
return medusaRequest("POST", path, config)
},
},
notes: {
listByResource(resourceId) {
const path = `/admin/notes?resource_id=${resourceId}`
return medusaRequest("GET", path)
},
async create(resourceId, resourceType, value) {
const path = `/admin/notes/`
return medusaRequest("POST", path, {
resource_id: resourceId,
resource_type: resourceType,
value,
})
},
update(id, value) {
const path = `admin/notes/${id}`
return medusaRequest("POST", path, { value })
},
delete(id) {
const path = `admin/notes/${id}`
return medusaRequest("DELETE", path)
},
},
customers: {
retrieve(customerId) {
const path = `/admin/customers/${customerId}`
return medusaRequest("GET", path)
},
list(search = "") {
const path = `/admin/customers${search}`
return medusaRequest("GET", path)
},
update(customerId, update) {
const path = `admin/customers/${customerId}`
return medusaRequest("POST", path, update)
},
},
store: {
retrieve() {
const path = `/admin/store`
return medusaRequest("GET", path)
},
update(update) {
const path = `/admin/store`
return medusaRequest("POST", path, update)
},
addCurrency(code) {
const path = `/admin/store/currencies/${code}`
return medusaRequest("POST", path)
},
removeCurrency(code) {
const path = `/admin/store/currencies/${code}`
return medusaRequest("DELETE", path)
},
listPaymentProviders() {
const path = `/admin/store/payment-providers`
return medusaRequest("GET", path)
},
},
shippingProfiles: {
list() {
const path = `/admin/shipping-profiles`
return medusaRequest("GET", path)
},
create(data) {
const path = `/admin/shipping-profiles`
return medusaRequest("POST", path, data)
},
retrieve(profileId) {
const path = `/admin/shipping-profiles/${profileId}`
return medusaRequest("GET", path)
},
update(profileId, update) {
const path = `/admin/shipping-profiles/${profileId}`
return medusaRequest("POST", path, update)
},
},
giftCards: {
create(giftCard) {
const path = `/admin/gift-cards`
return medusaRequest("POST", path, giftCard)
},
retrieve(giftCardId) {
const path = `/admin/gift-cards/${giftCardId}`
return medusaRequest("GET", path)
},
list(search = {}) {
const params = Object.keys(search)
.map((k) => `${k}=${search[k]}`)
.join("&")
const path = `/admin/gift-cards${params && `?${params}`}`
return medusaRequest("GET", path)
},
update(giftCardId, update) {
const path = `/admin/gift-cards/${giftCardId}`
return medusaRequest("POST", path, update)
},
delete(giftCardId) {
const path = `/admin/gift-cards/${giftCardId}`
return medusaRequest("DELETE", path)
},
},
variants: {
list(search = {}) {
const params = Object.keys(search)
.map((k) => `${k}=${search[k]}`)
.join("&")
const path = `/admin/variants${params && `?${params}`}`
return medusaRequest("GET", path)
},
},
products: {
create(product) {
const path = `/admin/products`
return medusaRequest("POST", path, product)
},
retrieve(productId) {
const path = `/admin/products/${productId}`
return medusaRequest("GET", path)
},
update(productId, update) {
const path = `/admin/products/${productId}`
return medusaRequest("POST", path, update)
},
delete(productId) {
const path = `/admin/products/${productId}`
return medusaRequest("DELETE", path)
},
list(search = {}) {
const params = Object.keys(search)
.map((k) => `${k}=${search[k]}`)
.join("&")
const path = `/admin/products${params && `?${params}`}`
return medusaRequest("GET", path)
},
listTypes() {
const path = `/admin/products/types`
return medusaRequest("GET", path)
},
listTagsByUsage() {
const path = `/admin/products/tag-usage`
return medusaRequest("GET", path)
},
variants: {
create(productId, variant) {
const path = `/admin/products/${productId}/variants`
return medusaRequest("POST", path, variant)
},
retrieve(productId, variantId) {
const path = `/admin/products/${productId}/variants/${variantId}`
return medusaRequest("GET", path)
},
update(productId, variantId, update) {
const path = `/admin/products/${productId}/variants/${variantId}`
return medusaRequest("POST", path, update)
},
delete(productId, variantId) {
const path = `/admin/products/${productId}/variants/${variantId}`
return medusaRequest("DELETE", path)
},
list(productId) {
const path = `/admin/products/${productId}/variants`
return medusaRequest("GET", path)
},
},
options: {
create(productId, option) {
const path = `/admin/products/${productId}/options`
return medusaRequest("POST", path, option)
},
delete(productId, optionId) {
const path = `/admin/products/${productId}/options/${optionId}`
return medusaRequest("DELETE", path)
},
update(productId, optionId, update) {
const path = `/admin/products/${productId}/options/${optionId}`
return medusaRequest("POST", path, update)
},
},
},
swaps: {
retrieve(swapId) {
const path = `/admin/swaps/${swapId}`
return medusaRequest("GET", path)
},
update(orderId, update) {
const path = `/admin/orders/${orderId}`
return medusaRequest("POST", path, update)
},
list(search = {}) {
const params = Object.keys(search)
.map((k) => {
if (search[k] === "" || search[k] === null) {
return null
}
return `${k}=${search[k]}`
})
.filter((s) => !!s)
.join("&")
const path = `/admin/swaps${params && `?${params}`}`
return medusaRequest("GET", path)
},
},
returns: {
list(search = {}) {
const clean = removeNullish(search)
const params = Object.keys(clean)
.map((k) => `${k}=${search[k]}`)
.filter((s) => !!s)
.join("&")
const path = `/admin/returns${params && `?${params}`}`
return medusaRequest("GET", path)
},
},
collections: {
create(payload) {
const path = `/admin/collections`
return medusaRequest("POST", path, payload)
},
retrieve(id) {
const path = `/admin/collections/${id}`
return medusaRequest("GET", path)
},
list(search = {}) {
const path = `/admin/collections`
return medusaRequest("GET", path)
},
addProducts(id, payload) {
const path = `/admin/collections/${id}/products/batch`
return medusaRequest("POST", path, payload)
},
removeProducts(id, payload) {
const path = `/admin/collections/${id}/products/batch`
return medusaRequest("DELETE", path, payload)
},
},
orders: {
create(order) {
const path = `/admin/orders`
return medusaRequest("POST", path, order)
},
async receiveReturn(returnId, payload) {
const path = `/admin/returns/${returnId}/receive`
const received = await medusaRequest("POST", path, payload)
let orderId
if (received.data.return?.order_id) {
orderId = received.data.return.order_id
}
if (received.data.return?.swap?.id) {
orderId = received.data.return?.swap?.order_id
}
return this.retrieve(orderId)
},
cancelReturn(returnId) {
const path = `/admin/returns/${returnId}/cancel`
return medusaRequest("POST", path)
},
retrieve(orderId, search = {}) {
const params = Object.keys(search)
.map((k) => {
if (search[k] === "" || search[k] === null) {
return null
}
return `${k}=${search[k]}`
})
.filter((s) => !!s)
.join("&")
const path = `/admin/orders/${orderId}${params && `?${params}`}`
return medusaRequest("GET", path)
},
update(orderId, update) {
const path = `/admin/orders/${orderId}`
return medusaRequest("POST", path, update)
},
list(search = {}) {
const clean = removeNullish(search)
const params = Object.keys(clean)
.map((k) => `${k}=${search[k]}`)
.filter((s) => !!s)
.join("&")
const path = `/admin/orders${params && `?${params}`}`
return medusaRequest("GET", path)
},
complete(orderId) {
const path = `/admin/orders/${orderId}/complete`
return medusaRequest("POST", path, {})
},
archive(orderId) {
const path = `/admin/orders/${orderId}/archive`
return medusaRequest("POST", path, {})
},
capturePayment(orderId) {
const path = `/admin/orders/${orderId}/capture`
return medusaRequest("POST", path, {})
},
createShipment(orderId, payload) {
const path = `/admin/orders/${orderId}/shipment`
return medusaRequest("POST", path, payload)
},
updateClaim(orderId, claimId, payload) {
const path = `/admin/orders/${orderId}/claims/${claimId}`
return medusaRequest("POST", path, payload)
},
createSwap(orderId, payload) {
const path = `/admin/orders/${orderId}/swaps`
return medusaRequest("POST", path, payload)
},
cancelSwap(orderId, swapId) {
const path = `/admin/orders/${orderId}/swaps/${swapId}/cancel`
return medusaRequest("POST", path)
},
createClaim(orderId, payload) {
const path = `/admin/orders/${orderId}/claims`
return medusaRequest("POST", path, payload)
},
cancelClaim(orderId, claimId) {
const path = `/admin/orders/${orderId}/claims/${claimId}/cancel`
return medusaRequest("POST", path)
},
fulfillClaim(orderId, claimId, payload) {
const path = `/admin/orders/${orderId}/claims/${claimId}/fulfillments`
return medusaRequest("POST", path, payload)
},
cancelClaimFulfillment(orderId, claimId, fulfillmentId) {
const path = `/admin/orders/${orderId}/claims/${claimId}/fulfillments/${fulfillmentId}/cancel`
return medusaRequest("POST", path)
},
createClaimShipment(orderId, cId, payload) {
const path = `/admin/orders/${orderId}/claims/${cId}/shipments`
return medusaRequest("POST", path, payload)
},
createSwapShipment(orderId, swapId, payload) {
const path = `/admin/orders/${orderId}/swaps/${swapId}/shipments`
return medusaRequest("POST", path, payload)
},
fulfillSwap(orderId, swapId, payload) {
const path = `/admin/orders/${orderId}/swaps/${swapId}/fulfillments`
return medusaRequest("POST", path, payload)
},
cancelSwapFulfillment(orderId, swapId, fulfillmentId) {
const path = `/admin/orders/${orderId}/swaps/${swapId}/fulfillments/${fulfillmentId}/cancel`
return medusaRequest("POST", path)
},
processSwapPayment(orderId, swapId) {
const path = `/admin/orders/${orderId}/swaps/${swapId}/process-payment`
return medusaRequest("POST", path)
},
createFulfillment(orderId, payload) {
const path = `/admin/orders/${orderId}/fulfillment`
return medusaRequest("POST", path, payload)
},
cancelFulfillment(orderId, fulfillmentId) {
const path = `/admin/orders/${orderId}/fulfillments/${fulfillmentId}/cancel`
return medusaRequest("POST", path)
},
refund(orderId, payload) {
const path = `/admin/orders/${orderId}/refund`
return medusaRequest("POST", path, payload)
},
requestReturn(orderId, payload) {
const path = `/admin/orders/${orderId}/return`
return medusaRequest("POST", path, payload)
},
cancel(orderId) {
const path = `/admin/orders/${orderId}/cancel`
return medusaRequest("POST", path, {})
},
},
shippingOptions: {
create(shippingOption) {
const path = `/admin/shipping-options`
return medusaRequest("POST", path, shippingOption)
},
retrieve(id) {
const path = `/admin/shipping-options/${id}`
return medusaRequest("POST", path)
},
delete(id) {
const path = `/admin/shipping-options/${id}`
return medusaRequest("DELETE", path)
},
list(search = {}) {
const params = Object.keys(search)
.map((k) => `${k}=${search[k]}`)
.join("&")
const path = `/admin/shipping-options${params && `?${params}`}`
return medusaRequest("GET", path)
},
update(id, update) {
const path = `/admin/shipping-options/${id}`
return medusaRequest("POST", path, update)
},
},
discounts: {
create(discount) {
const path = `/admin/discounts`
return medusaRequest("POST", path, discount)
},
retrieve(discountId) {
const path = `/admin/discounts/${discountId}`
return medusaRequest("GET", path)
},
update(discountId, update) {
const path = `/admin/discounts/${discountId}`
return medusaRequest("POST", path, update)
},
delete(discountId) {
const path = `/admin/discounts/${discountId}`
return medusaRequest("DELETE", path)
},
list(search = {}) {
const params = buildQueryFromObject(search)
const path = `/admin/discounts${params && `?${params}`}`
return medusaRequest("GET", path)
},
retrieveByCode(code) {
const path = `/admin/discounts/code/${code}`
return medusaRequest("GET", path)
},
},
regions: {
list() {
const path = `/admin/regions`
return medusaRequest("GET", path)
},
retrieve(id) {
const path = `/admin/regions/${id}`
return medusaRequest("GET", path)
},
create(region) {
const path = `/admin/regions`
return medusaRequest("POST", path, region)
},
update(id, region) {
const path = `/admin/regions/${id}`
return medusaRequest("POST", path, region)
},
delete(id) {
const path = `/admin/regions/${id}`
return medusaRequest("DELETE", path)
},
fulfillmentOptions: {
list(regionId) {
const path = `/admin/regions/${regionId}/fulfillment-options`
return medusaRequest("GET", path)
},
},
},
uploads: {
create(files) {
const formData = new FormData()
for (const f of files) {
formData.append("files", f)
}
return medusaRequest("POST", "/admin/uploads", formData)
},
},
draftOrders: {
create(draftOrder) {
const path = `/admin/draft-orders`
return medusaRequest("POST", path, draftOrder)
},
addLineItem(draftOrderId, line) {
const path = `/admin/draft-orders/${draftOrderId}/line-items`
return medusaRequest("POST", path, line)
},
updateLineItem(draftOrderId, lineId, line) {
const path = `/admin/draft-orders/${draftOrderId}/line-items/${lineId}`
return medusaRequest("POST", path, line)
},
deleteLineItem(draftOrderId, lineId) {
const path = `/admin/draft-orders/${draftOrderId}/line-items/${lineId}`
return medusaRequest("DELETE", path)
},
retrieve(id) {
const path = `/admin/draft-orders/${id}`
return medusaRequest("GET", path)
},
delete(id) {
const path = `/admin/draft-orders/${id}`
return medusaRequest("DELETE", path)
},
update(id, payload) {
const path = `/admin/draft-orders/${id}`
return medusaRequest("POST", path, payload)
},
registerSystemPayment(id) {
const path = `/admin/draft-orders/${id}/pay`
return medusaRequest("POST", path)
},
list(search = {}) {
const params = Object.keys(search)
.map((k) => {
if (search[k] === "" || search[k] === null) {
return null
}
return `${k}=${search[k]}`
})
.filter((s) => !!s)
.join("&")
const path = `/admin/draft-orders${params && `?${params}`}`
return medusaRequest("GET", path)
},
},
invites: {
create(data) {
const path = `/admin/invites`
return medusaRequest("POST", path, data)
},
resend(inviteId) {
const path = `/admin/invites/${inviteId}/resend`
return medusaRequest("POST", path)
},
delete(inviteId) {
const path = `/admin/invites/${inviteId}`
return medusaRequest("DELETE", path)
},
list() {
const path = `/admin/invites`
return medusaRequest("GET", path)
},
accept(data) {
const path = `/admin/invites/accept`
return medusaRequest("POST", path, data)
},
},
users: {
resetPasswordToken(data) {
const path = `/admin/users/password-token`
return medusaRequest("POST", path, data)
},
resetPassword(data) {
const path = `/admin/users/reset-password`
return medusaRequest("POST", path, data)
},
list() {
const path = `/admin/users`
return medusaRequest("GET", path)
},
retrieve(userId) {
const path = `/admin/users/${userId}`
return medusaRequest("GET", path)
},
update(userId, data) {
const path = `/admin/users/${userId}`
return medusaRequest("POST", path, data)
},
delete(userId) {
const path = `/admin/users/${userId}`
return medusaRequest("DELETE", path)
},
},
}