feat(medusa, medusa-js, medusa-react): Implement Sales Channel update (#1797)
This commit is contained in:
@@ -1681,4 +1681,16 @@ export const adminHandlers = [
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.post("/admin/sales-channels/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
sales_channel: {
|
||||
...fixtures.get("sales_channel"),
|
||||
...(req.body as any),
|
||||
},
|
||||
})
|
||||
)
|
||||
})
|
||||
]
|
||||
|
||||
@@ -1,4 +1,34 @@
|
||||
export {}
|
||||
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
|
||||
import {
|
||||
AdminSalesChannelsRes,
|
||||
AdminPostSalesChannelsSalesChannelReq,
|
||||
} from "@medusajs/medusa"
|
||||
import { Response } from "@medusajs/medusa-js"
|
||||
import { useMedusa } from "../../../contexts"
|
||||
import { buildOptions } from "../../utils/buildOptions"
|
||||
import { adminSalesChannelsKeys } from "./queries"
|
||||
|
||||
export const useAdminUpdateSalesChannel = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<
|
||||
Response<AdminSalesChannelsRes>,
|
||||
Error,
|
||||
AdminPostSalesChannelsSalesChannelReq
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const queryClient = useQueryClient()
|
||||
return useMutation(
|
||||
(payload: AdminPostSalesChannelsSalesChannelReq) =>
|
||||
client.admin.salesChannels.update(id, payload),
|
||||
buildOptions(
|
||||
queryClient,
|
||||
[adminSalesChannelsKeys.lists(), adminSalesChannelsKeys.detail(id)],
|
||||
options
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
/*export const useAdminCreateSalesChannel = (
|
||||
options?: UseMutationOptions<
|
||||
Response<AdminSalesChannelsRes>,
|
||||
@@ -14,28 +44,6 @@ export {}
|
||||
)
|
||||
}*/
|
||||
|
||||
/*export const useAdminUpdateSalesChannel = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<
|
||||
Response<AdminSalesChannelsRes>,
|
||||
Error,
|
||||
AdminPostSalesChannelsSalesChannelReq
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation(
|
||||
(payload: AdminPostSalesChannelsSalesChannelReq) =>
|
||||
client.admin.salesChannels.update(id, payload),
|
||||
buildOptions(
|
||||
queryClient,
|
||||
[adminSalesChannelsKeys.lists(), adminSalesChannelsKeys.detail(id)],
|
||||
options
|
||||
)
|
||||
)
|
||||
}*/
|
||||
|
||||
/*export const useAdminDeleteSalesChannel = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<Response<AdminSalesChannelsDeleteRes>, Error, void>
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import {
|
||||
AdminSalesChannelRes
|
||||
} from "@medusajs/medusa"
|
||||
import { AdminSalesChannelsRes } from "@medusajs/medusa"
|
||||
import { Response } from "@medusajs/medusa-js"
|
||||
import { useQuery } from "react-query"
|
||||
import { useMedusa } from "../../../contexts"
|
||||
@@ -9,14 +7,16 @@ import { queryKeysFactory } from "../../utils"
|
||||
|
||||
const ADMIN_SALES_CHANNELS_QUERY_KEY = `admin_sales_channels` as const
|
||||
|
||||
export const adminSalesChannelsKeys = queryKeysFactory(ADMIN_SALES_CHANNELS_QUERY_KEY)
|
||||
export const adminSalesChannelsKeys = queryKeysFactory(
|
||||
ADMIN_SALES_CHANNELS_QUERY_KEY
|
||||
)
|
||||
|
||||
type SalesChannelsQueryKeys = typeof adminSalesChannelsKeys
|
||||
|
||||
export const useAdminSalesChannel = (
|
||||
id: string,
|
||||
options?: UseQueryOptionsWrapper<
|
||||
Response<AdminSalesChannelRes>,
|
||||
Response<AdminSalesChannelsRes>,
|
||||
Error,
|
||||
ReturnType<SalesChannelsQueryKeys["detail"]>
|
||||
>
|
||||
@@ -48,4 +48,3 @@ export const useAdminSalesChannels = (
|
||||
return { ...data, ...rest } as const
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import { useAdminUpdateSalesChannel } from "../../../../src"
|
||||
import { renderHook } from "@testing-library/react-hooks"
|
||||
import { fixtures } from "../../../../mocks/data"
|
||||
import { createWrapper } from "../../../utils"
|
||||
|
||||
describe("useAdminUpdateStore hook", () => {
|
||||
test("updates a store", async () => {
|
||||
const salesChannel = {
|
||||
name: "medusa sales channel",
|
||||
description: "main sales channel for medusa",
|
||||
is_disabled: true,
|
||||
}
|
||||
|
||||
const salesChannelId = fixtures.get("sales_channel").id
|
||||
|
||||
const { result, waitFor } = renderHook(
|
||||
() => useAdminUpdateSalesChannel(salesChannelId),
|
||||
{
|
||||
wrapper: createWrapper(),
|
||||
}
|
||||
)
|
||||
|
||||
result.current.mutate(salesChannel)
|
||||
|
||||
await waitFor(() => result.current.isSuccess)
|
||||
|
||||
expect(result.current.data.response.status).toEqual(200)
|
||||
expect(result.current.data.sales_channel).toEqual({
|
||||
...fixtures.get("sales_channel"),
|
||||
...salesChannel,
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -1,6 +1,4 @@
|
||||
import {
|
||||
useAdminSalesChannel,
|
||||
} from "../../../../src"
|
||||
import { useAdminSalesChannel } from "../../../../src"
|
||||
import { renderHook } from "@testing-library/react-hooks"
|
||||
import { fixtures } from "../../../../mocks/data"
|
||||
import { createWrapper } from "../../../utils"
|
||||
|
||||
Reference in New Issue
Block a user