fix: use /admin/returns/:id/receive for swap returns (#1041)

This commit is contained in:
Oliver Windall Juhl
2022-02-15 14:15:00 +01:00
committed by olivermrbl
parent 88ac3c0785
commit 7a3a1837a1
7 changed files with 48 additions and 89 deletions

View File

@@ -1,22 +1,21 @@
import {
AdminPostOrdersOrderReq,
AdminOrdersRes,
AdminGetOrdersParams,
AdminOrdersListRes,
AdminPostOrdersReq,
AdminPostOrdersOrderRefundsReq,
AdminOrdersRes,
AdminPostOrdersOrderClaimsClaimFulfillmentsReq,
AdminPostOrdersOrderClaimsClaimReq,
AdminPostOrdersOrderClaimsClaimShipmentsReq,
AdminPostOrdersOrderClaimsReq,
AdminPostOrdersOrderFulfillmentsReq,
AdminPostOrdersOrderShipmentReq,
AdminPostOrdersOrderRefundsReq,
AdminPostOrdersOrderReq,
AdminPostOrdersOrderReturnsReq,
AdminPostOrdersOrderShipmentReq,
AdminPostOrdersOrderShippingMethodsReq,
AdminPostOrdersOrderSwapsReq,
AdminPostOrdersOrderSwapsSwapReceiveReq,
AdminPostOrdersOrderSwapsSwapFulfillmentsReq,
AdminPostOrdersOrderSwapsSwapShipmentsReq,
AdminPostOrdersOrderClaimsReq,
AdminPostOrdersOrderClaimsClaimFulfillmentsReq,
AdminPostOrdersOrderClaimsClaimShipmentsReq,
AdminPostOrdersOrderClaimsClaimReq,
AdminPostOrdersReq,
} from "@medusajs/medusa"
import qs from "qs"
import { ResponsePromise } from "../../typings"
@@ -151,15 +150,6 @@ class AdminOrdersResource extends BaseResource {
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(
id: string,
swapId: string,

View File

@@ -1,5 +1,6 @@
import {
AdminGetReturnsParams,
AdminPostReturnsReturnReceiveReq,
AdminReturnsCancelRes,
AdminReturnsListRes,
AdminReturnsRes,
@@ -22,11 +23,15 @@ class AdminReturnsResource extends BaseResource {
/**
* @description receive a return
* @param id id of the return to receive.
* @param payload items to receive and an optional refund amount
* @returns the return
*/
receive(id: string): ResponsePromise<AdminReturnsRes> {
receive(
id: string,
payload: AdminPostReturnsReturnReceiveReq
): ResponsePromise<AdminReturnsRes> {
const path = `/admin/returns/${id}/receive`
return this.client.request("POST", path)
return this.client.request("POST", path, payload)
}
/**

View File

@@ -1,4 +1,3 @@
import { adminDraftOrderKeys } from "./queries"
import {
AdminDraftOrdersDeleteRes,
AdminDraftOrdersRes,
@@ -11,6 +10,7 @@ import { Response } from "@medusajs/medusa-js"
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
import { useMedusa } from "../../../contexts/medusa"
import { buildOptions } from "../../utils/buildOptions"
import { adminDraftOrderKeys } from "./queries"
export const useAdminCreateDraftOrder = (
options?: UseMutationOptions<

View File

@@ -1,4 +1,8 @@
import { AdminReturnsCancelRes, AdminReturnsRes } from "@medusajs/medusa"
import {
AdminPostReturnsReturnReceiveReq,
AdminReturnsCancelRes,
AdminReturnsRes,
} from "@medusajs/medusa"
import { Response } from "@medusajs/medusa-js"
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
import { useMedusa } from "../../../contexts/medusa"
@@ -7,13 +11,17 @@ import { adminReturnKeys } from "./queries"
export const useAdminReceiveReturn = (
id: string,
options?: UseMutationOptions<Response<AdminReturnsRes>, Error, void>
options?: UseMutationOptions<
Response<AdminReturnsRes>,
Error,
AdminPostReturnsReturnReceiveReq
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
() => client.admin.returns.receive(id),
payload => client.admin.returns.receive(id, payload),
buildOptions(
queryClient,
[adminReturnKeys.detail(id), adminReturnKeys.list()],

View File

@@ -1,9 +1,7 @@
import { adminSwapKeys } from "./queries"
import {
AdminOrdersRes,
AdminPostOrdersOrderSwapsReq,
AdminPostOrdersOrderSwapsSwapFulfillmentsReq,
AdminPostOrdersOrderSwapsSwapReceiveReq,
AdminPostOrdersOrderSwapsSwapShipmentsReq,
} from "@medusajs/medusa"
import { Response } from "@medusajs/medusa-js"
@@ -11,6 +9,7 @@ import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
import { adminOrderKeys } from ".."
import { useMedusa } from "../../../contexts/medusa"
import { buildOptions } from "../../utils/buildOptions"
import { adminSwapKeys } from "./queries"
export const useAdminCreateSwap = (
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 = (
orderId: string,
options?: UseMutationOptions<

View File

@@ -1,6 +1,6 @@
import { useAdminCancelReturn, useAdminReceiveReturn } from "../../../../src/"
import { renderHook } from "@testing-library/react-hooks"
import { fixtures } from "../../../../mocks/data"
import { useAdminCancelReturn, useAdminReceiveReturn } from "../../../../src/"
import { createWrapper } from "../../../utils"
describe("useAdminCancel hook", () => {
@@ -23,6 +23,15 @@ describe("useAdminCancel hook", () => {
describe("useAdminReceiveReturn hook", () => {
test("marks a return as received", async () => {
const payload = {
items: [
{
item_id: "test_id",
quantity: 1,
},
],
}
const { result, waitFor } = renderHook(
() => useAdminReceiveReturn("test-return"),
{
@@ -30,7 +39,7 @@ describe("useAdminReceiveReturn hook", () => {
}
)
result.current.mutate()
result.current.mutate({ ...payload })
await waitFor(() => result.current.isSuccess)

View File

@@ -1,14 +1,13 @@
import {
useAdminCreateSwap,
useAdminReceiveSwap,
useAdminFulfillSwap,
useAdminCancelSwap,
useAdminCreateSwapShipment,
useAdminProcessSwapPayment,
useAdminCancelSwapFulfillment,
} from "../../../../src/"
import { renderHook } from "@testing-library/react-hooks"
import { fixtures } from "../../../../mocks/data"
import {
useAdminCancelSwap,
useAdminCancelSwapFulfillment,
useAdminCreateSwap,
useAdminCreateSwapShipment,
useAdminFulfillSwap,
useAdminProcessSwapPayment,
} from "../../../../src/"
import { createWrapper } from "../../../utils"
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", () => {
test("receives a swap", async () => {
const orderId = fixtures.get("order").id