fix: use /admin/returns/:id/receive for swap returns (#1041)
This commit is contained in:
@@ -1,22 +1,21 @@
|
|||||||
import {
|
import {
|
||||||
AdminPostOrdersOrderReq,
|
|
||||||
AdminOrdersRes,
|
|
||||||
AdminGetOrdersParams,
|
AdminGetOrdersParams,
|
||||||
AdminOrdersListRes,
|
AdminOrdersListRes,
|
||||||
AdminPostOrdersReq,
|
AdminOrdersRes,
|
||||||
AdminPostOrdersOrderRefundsReq,
|
AdminPostOrdersOrderClaimsClaimFulfillmentsReq,
|
||||||
|
AdminPostOrdersOrderClaimsClaimReq,
|
||||||
|
AdminPostOrdersOrderClaimsClaimShipmentsReq,
|
||||||
|
AdminPostOrdersOrderClaimsReq,
|
||||||
AdminPostOrdersOrderFulfillmentsReq,
|
AdminPostOrdersOrderFulfillmentsReq,
|
||||||
AdminPostOrdersOrderShipmentReq,
|
AdminPostOrdersOrderRefundsReq,
|
||||||
|
AdminPostOrdersOrderReq,
|
||||||
AdminPostOrdersOrderReturnsReq,
|
AdminPostOrdersOrderReturnsReq,
|
||||||
|
AdminPostOrdersOrderShipmentReq,
|
||||||
AdminPostOrdersOrderShippingMethodsReq,
|
AdminPostOrdersOrderShippingMethodsReq,
|
||||||
AdminPostOrdersOrderSwapsReq,
|
AdminPostOrdersOrderSwapsReq,
|
||||||
AdminPostOrdersOrderSwapsSwapReceiveReq,
|
|
||||||
AdminPostOrdersOrderSwapsSwapFulfillmentsReq,
|
AdminPostOrdersOrderSwapsSwapFulfillmentsReq,
|
||||||
AdminPostOrdersOrderSwapsSwapShipmentsReq,
|
AdminPostOrdersOrderSwapsSwapShipmentsReq,
|
||||||
AdminPostOrdersOrderClaimsReq,
|
AdminPostOrdersReq,
|
||||||
AdminPostOrdersOrderClaimsClaimFulfillmentsReq,
|
|
||||||
AdminPostOrdersOrderClaimsClaimShipmentsReq,
|
|
||||||
AdminPostOrdersOrderClaimsClaimReq,
|
|
||||||
} from "@medusajs/medusa"
|
} from "@medusajs/medusa"
|
||||||
import qs from "qs"
|
import qs from "qs"
|
||||||
import { ResponsePromise } from "../../typings"
|
import { ResponsePromise } from "../../typings"
|
||||||
@@ -151,15 +150,6 @@ class AdminOrdersResource extends BaseResource {
|
|||||||
return this.client.request("POST", path)
|
return this.client.request("POST", path)
|
||||||
}
|
}
|
||||||
|
|
||||||
receiveSwap(
|
|
||||||
id: string,
|
|
||||||
swapId: string,
|
|
||||||
payload: AdminPostOrdersOrderSwapsSwapReceiveReq
|
|
||||||
): ResponsePromise<AdminOrdersRes> {
|
|
||||||
const path = `/admin/orders/${id}/swaps/${swapId}/receive`
|
|
||||||
return this.client.request("POST", path, payload)
|
|
||||||
}
|
|
||||||
|
|
||||||
fulfillSwap(
|
fulfillSwap(
|
||||||
id: string,
|
id: string,
|
||||||
swapId: string,
|
swapId: string,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import {
|
import {
|
||||||
AdminGetReturnsParams,
|
AdminGetReturnsParams,
|
||||||
|
AdminPostReturnsReturnReceiveReq,
|
||||||
AdminReturnsCancelRes,
|
AdminReturnsCancelRes,
|
||||||
AdminReturnsListRes,
|
AdminReturnsListRes,
|
||||||
AdminReturnsRes,
|
AdminReturnsRes,
|
||||||
@@ -22,11 +23,15 @@ class AdminReturnsResource extends BaseResource {
|
|||||||
/**
|
/**
|
||||||
* @description receive a return
|
* @description receive a return
|
||||||
* @param id id of the return to receive.
|
* @param id id of the return to receive.
|
||||||
|
* @param payload items to receive and an optional refund amount
|
||||||
* @returns the return
|
* @returns the return
|
||||||
*/
|
*/
|
||||||
receive(id: string): ResponsePromise<AdminReturnsRes> {
|
receive(
|
||||||
|
id: string,
|
||||||
|
payload: AdminPostReturnsReturnReceiveReq
|
||||||
|
): ResponsePromise<AdminReturnsRes> {
|
||||||
const path = `/admin/returns/${id}/receive`
|
const path = `/admin/returns/${id}/receive`
|
||||||
return this.client.request("POST", path)
|
return this.client.request("POST", path, payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import { adminDraftOrderKeys } from "./queries"
|
|
||||||
import {
|
import {
|
||||||
AdminDraftOrdersDeleteRes,
|
AdminDraftOrdersDeleteRes,
|
||||||
AdminDraftOrdersRes,
|
AdminDraftOrdersRes,
|
||||||
@@ -11,6 +10,7 @@ import { Response } from "@medusajs/medusa-js"
|
|||||||
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
|
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
|
||||||
import { useMedusa } from "../../../contexts/medusa"
|
import { useMedusa } from "../../../contexts/medusa"
|
||||||
import { buildOptions } from "../../utils/buildOptions"
|
import { buildOptions } from "../../utils/buildOptions"
|
||||||
|
import { adminDraftOrderKeys } from "./queries"
|
||||||
|
|
||||||
export const useAdminCreateDraftOrder = (
|
export const useAdminCreateDraftOrder = (
|
||||||
options?: UseMutationOptions<
|
options?: UseMutationOptions<
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
import { AdminReturnsCancelRes, AdminReturnsRes } from "@medusajs/medusa"
|
import {
|
||||||
|
AdminPostReturnsReturnReceiveReq,
|
||||||
|
AdminReturnsCancelRes,
|
||||||
|
AdminReturnsRes,
|
||||||
|
} from "@medusajs/medusa"
|
||||||
import { Response } from "@medusajs/medusa-js"
|
import { Response } from "@medusajs/medusa-js"
|
||||||
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
|
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
|
||||||
import { useMedusa } from "../../../contexts/medusa"
|
import { useMedusa } from "../../../contexts/medusa"
|
||||||
@@ -7,13 +11,17 @@ import { adminReturnKeys } from "./queries"
|
|||||||
|
|
||||||
export const useAdminReceiveReturn = (
|
export const useAdminReceiveReturn = (
|
||||||
id: string,
|
id: string,
|
||||||
options?: UseMutationOptions<Response<AdminReturnsRes>, Error, void>
|
options?: UseMutationOptions<
|
||||||
|
Response<AdminReturnsRes>,
|
||||||
|
Error,
|
||||||
|
AdminPostReturnsReturnReceiveReq
|
||||||
|
>
|
||||||
) => {
|
) => {
|
||||||
const { client } = useMedusa()
|
const { client } = useMedusa()
|
||||||
const queryClient = useQueryClient()
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
return useMutation(
|
return useMutation(
|
||||||
() => client.admin.returns.receive(id),
|
payload => client.admin.returns.receive(id, payload),
|
||||||
buildOptions(
|
buildOptions(
|
||||||
queryClient,
|
queryClient,
|
||||||
[adminReturnKeys.detail(id), adminReturnKeys.list()],
|
[adminReturnKeys.detail(id), adminReturnKeys.list()],
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
import { adminSwapKeys } from "./queries"
|
|
||||||
import {
|
import {
|
||||||
AdminOrdersRes,
|
AdminOrdersRes,
|
||||||
AdminPostOrdersOrderSwapsReq,
|
AdminPostOrdersOrderSwapsReq,
|
||||||
AdminPostOrdersOrderSwapsSwapFulfillmentsReq,
|
AdminPostOrdersOrderSwapsSwapFulfillmentsReq,
|
||||||
AdminPostOrdersOrderSwapsSwapReceiveReq,
|
|
||||||
AdminPostOrdersOrderSwapsSwapShipmentsReq,
|
AdminPostOrdersOrderSwapsSwapShipmentsReq,
|
||||||
} from "@medusajs/medusa"
|
} from "@medusajs/medusa"
|
||||||
import { Response } from "@medusajs/medusa-js"
|
import { Response } from "@medusajs/medusa-js"
|
||||||
@@ -11,6 +9,7 @@ import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
|
|||||||
import { adminOrderKeys } from ".."
|
import { adminOrderKeys } from ".."
|
||||||
import { useMedusa } from "../../../contexts/medusa"
|
import { useMedusa } from "../../../contexts/medusa"
|
||||||
import { buildOptions } from "../../utils/buildOptions"
|
import { buildOptions } from "../../utils/buildOptions"
|
||||||
|
import { adminSwapKeys } from "./queries"
|
||||||
|
|
||||||
export const useAdminCreateSwap = (
|
export const useAdminCreateSwap = (
|
||||||
orderId: string,
|
orderId: string,
|
||||||
@@ -50,31 +49,6 @@ export const useAdminCancelSwap = (
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useAdminReceiveSwap = (
|
|
||||||
orderId: string,
|
|
||||||
options?: UseMutationOptions<
|
|
||||||
Response<AdminOrdersRes>,
|
|
||||||
Error,
|
|
||||||
AdminPostOrdersOrderSwapsSwapReceiveReq & { swap_id: string }
|
|
||||||
>
|
|
||||||
) => {
|
|
||||||
const { client } = useMedusa()
|
|
||||||
const queryClient = useQueryClient()
|
|
||||||
|
|
||||||
return useMutation(
|
|
||||||
({
|
|
||||||
swap_id,
|
|
||||||
...payload
|
|
||||||
}: AdminPostOrdersOrderSwapsSwapReceiveReq & { swap_id: string }) =>
|
|
||||||
client.admin.orders.receiveSwap(orderId, swap_id, payload),
|
|
||||||
buildOptions(
|
|
||||||
queryClient,
|
|
||||||
[adminOrderKeys.detail(orderId), adminSwapKeys.lists()],
|
|
||||||
options
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export const useAdminFulfillSwap = (
|
export const useAdminFulfillSwap = (
|
||||||
orderId: string,
|
orderId: string,
|
||||||
options?: UseMutationOptions<
|
options?: UseMutationOptions<
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useAdminCancelReturn, useAdminReceiveReturn } from "../../../../src/"
|
|
||||||
import { renderHook } from "@testing-library/react-hooks"
|
import { renderHook } from "@testing-library/react-hooks"
|
||||||
import { fixtures } from "../../../../mocks/data"
|
import { fixtures } from "../../../../mocks/data"
|
||||||
|
import { useAdminCancelReturn, useAdminReceiveReturn } from "../../../../src/"
|
||||||
import { createWrapper } from "../../../utils"
|
import { createWrapper } from "../../../utils"
|
||||||
|
|
||||||
describe("useAdminCancel hook", () => {
|
describe("useAdminCancel hook", () => {
|
||||||
@@ -23,6 +23,15 @@ describe("useAdminCancel hook", () => {
|
|||||||
|
|
||||||
describe("useAdminReceiveReturn hook", () => {
|
describe("useAdminReceiveReturn hook", () => {
|
||||||
test("marks a return as received", async () => {
|
test("marks a return as received", async () => {
|
||||||
|
const payload = {
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
item_id: "test_id",
|
||||||
|
quantity: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
const { result, waitFor } = renderHook(
|
const { result, waitFor } = renderHook(
|
||||||
() => useAdminReceiveReturn("test-return"),
|
() => useAdminReceiveReturn("test-return"),
|
||||||
{
|
{
|
||||||
@@ -30,7 +39,7 @@ describe("useAdminReceiveReturn hook", () => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
result.current.mutate()
|
result.current.mutate({ ...payload })
|
||||||
|
|
||||||
await waitFor(() => result.current.isSuccess)
|
await waitFor(() => result.current.isSuccess)
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
import {
|
|
||||||
useAdminCreateSwap,
|
|
||||||
useAdminReceiveSwap,
|
|
||||||
useAdminFulfillSwap,
|
|
||||||
useAdminCancelSwap,
|
|
||||||
useAdminCreateSwapShipment,
|
|
||||||
useAdminProcessSwapPayment,
|
|
||||||
useAdminCancelSwapFulfillment,
|
|
||||||
} from "../../../../src/"
|
|
||||||
import { renderHook } from "@testing-library/react-hooks"
|
import { renderHook } from "@testing-library/react-hooks"
|
||||||
import { fixtures } from "../../../../mocks/data"
|
import { fixtures } from "../../../../mocks/data"
|
||||||
|
import {
|
||||||
|
useAdminCancelSwap,
|
||||||
|
useAdminCancelSwapFulfillment,
|
||||||
|
useAdminCreateSwap,
|
||||||
|
useAdminCreateSwapShipment,
|
||||||
|
useAdminFulfillSwap,
|
||||||
|
useAdminProcessSwapPayment,
|
||||||
|
} from "../../../../src/"
|
||||||
import { createWrapper } from "../../../utils"
|
import { createWrapper } from "../../../utils"
|
||||||
|
|
||||||
describe("useAdminCreateSwap hook", () => {
|
describe("useAdminCreateSwap hook", () => {
|
||||||
@@ -42,32 +41,6 @@ describe("useAdminCreateSwap hook", () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("useAdminReceiveSwap hook", () => {
|
|
||||||
test("receives a swap", async () => {
|
|
||||||
const orderId = fixtures.get("order").id
|
|
||||||
const swapId = "test-swap"
|
|
||||||
const payload = {
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
item_id: "test_id",
|
|
||||||
quantity: 1,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
const { result, waitFor } = renderHook(() => useAdminReceiveSwap(orderId), {
|
|
||||||
wrapper: createWrapper(),
|
|
||||||
})
|
|
||||||
|
|
||||||
result.current.mutate({ swap_id: swapId, ...payload })
|
|
||||||
|
|
||||||
await waitFor(() => result.current.isSuccess)
|
|
||||||
|
|
||||||
expect(result.current.data.response.status).toEqual(200)
|
|
||||||
expect(result.current.data.order).toEqual(fixtures.get("order"))
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe("useAdminFulfillSwap hook", () => {
|
describe("useAdminFulfillSwap hook", () => {
|
||||||
test("receives a swap", async () => {
|
test("receives a swap", async () => {
|
||||||
const orderId = fixtures.get("order").id
|
const orderId = fixtures.get("order").id
|
||||||
|
|||||||
Reference in New Issue
Block a user