From 7a3a1837a1db067c3629f1dfd7c6a95a56d649ca Mon Sep 17 00:00:00 2001 From: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com> Date: Tue, 15 Feb 2022 14:15:00 +0100 Subject: [PATCH] fix: use /admin/returns/:id/receive for swap returns (#1041) --- .../medusa-js/src/resources/admin/orders.ts | 28 ++++-------- .../medusa-js/src/resources/admin/returns.ts | 9 +++- .../src/hooks/admin/draft-orders/mutations.ts | 2 +- .../src/hooks/admin/returns/mutations.ts | 14 ++++-- .../src/hooks/admin/swaps/mutations.ts | 28 +----------- .../hooks/admin/returns/mutations.test.ts | 13 +++++- .../test/hooks/admin/swaps/mutations.test.ts | 43 ++++--------------- 7 files changed, 48 insertions(+), 89 deletions(-) diff --git a/packages/medusa-js/src/resources/admin/orders.ts b/packages/medusa-js/src/resources/admin/orders.ts index 522f034d87..0df0cc86ba 100644 --- a/packages/medusa-js/src/resources/admin/orders.ts +++ b/packages/medusa-js/src/resources/admin/orders.ts @@ -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 { - const path = `/admin/orders/${id}/swaps/${swapId}/receive` - return this.client.request("POST", path, payload) - } - fulfillSwap( id: string, swapId: string, diff --git a/packages/medusa-js/src/resources/admin/returns.ts b/packages/medusa-js/src/resources/admin/returns.ts index c979d29dad..48c66e91b4 100644 --- a/packages/medusa-js/src/resources/admin/returns.ts +++ b/packages/medusa-js/src/resources/admin/returns.ts @@ -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 { + receive( + id: string, + payload: AdminPostReturnsReturnReceiveReq + ): ResponsePromise { const path = `/admin/returns/${id}/receive` - return this.client.request("POST", path) + return this.client.request("POST", path, payload) } /** diff --git a/packages/medusa-react/src/hooks/admin/draft-orders/mutations.ts b/packages/medusa-react/src/hooks/admin/draft-orders/mutations.ts index 8e94849955..93e5ebdfa3 100644 --- a/packages/medusa-react/src/hooks/admin/draft-orders/mutations.ts +++ b/packages/medusa-react/src/hooks/admin/draft-orders/mutations.ts @@ -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< diff --git a/packages/medusa-react/src/hooks/admin/returns/mutations.ts b/packages/medusa-react/src/hooks/admin/returns/mutations.ts index 7f7cd84800..d9ac96aca4 100644 --- a/packages/medusa-react/src/hooks/admin/returns/mutations.ts +++ b/packages/medusa-react/src/hooks/admin/returns/mutations.ts @@ -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, Error, void> + options?: UseMutationOptions< + Response, + 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()], diff --git a/packages/medusa-react/src/hooks/admin/swaps/mutations.ts b/packages/medusa-react/src/hooks/admin/swaps/mutations.ts index de1612e486..ac41e87525 100644 --- a/packages/medusa-react/src/hooks/admin/swaps/mutations.ts +++ b/packages/medusa-react/src/hooks/admin/swaps/mutations.ts @@ -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, - 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< diff --git a/packages/medusa-react/test/hooks/admin/returns/mutations.test.ts b/packages/medusa-react/test/hooks/admin/returns/mutations.test.ts index 2da74a0953..7cc21ae0dc 100644 --- a/packages/medusa-react/test/hooks/admin/returns/mutations.test.ts +++ b/packages/medusa-react/test/hooks/admin/returns/mutations.test.ts @@ -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) diff --git a/packages/medusa-react/test/hooks/admin/swaps/mutations.test.ts b/packages/medusa-react/test/hooks/admin/swaps/mutations.test.ts index 41aa8a0354..59d5364531 100644 --- a/packages/medusa-react/test/hooks/admin/swaps/mutations.test.ts +++ b/packages/medusa-react/test/hooks/admin/swaps/mutations.test.ts @@ -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