feat(medusa, medusa-js, medusa-react): Implement Sales Channel retrieval (#1793)
This commit is contained in:
@@ -1261,6 +1261,15 @@
|
||||
},
|
||||
"upload": {
|
||||
"url": "test-url"
|
||||
},
|
||||
"sales_channel": {
|
||||
"id": "sc_01F0YES4R67TXXC1QBQ8P54A8Y",
|
||||
"name": "sales channel 1 name",
|
||||
"description": "sales channel 1 description",
|
||||
"is_disabled": false,
|
||||
"updated_at": "2022-07-05T15:16:01.959Z",
|
||||
"created_at": "2022-07-05T15:16:01.959Z",
|
||||
"deleted_at": null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1672,4 +1672,13 @@ export const adminHandlers = [
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.get("/admin/sales-channels/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
sales_channel: fixtures.get("sales_channel"),
|
||||
})
|
||||
)
|
||||
}),
|
||||
]
|
||||
|
||||
@@ -18,6 +18,7 @@ export * from "./products"
|
||||
export * from "./regions"
|
||||
export * from "./return-reasons"
|
||||
export * from "./returns"
|
||||
export * from "./sales-channels"
|
||||
export * from "./shipping-options"
|
||||
export * from "./shipping-profiles"
|
||||
export * from "./store"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from "./queries"
|
||||
export * from "./mutations"
|
||||
@@ -0,0 +1,54 @@
|
||||
export {}
|
||||
/*export const useAdminCreateSalesChannel = (
|
||||
options?: UseMutationOptions<
|
||||
Response<AdminSalesChannelsRes>,
|
||||
Error,
|
||||
AdminPostSalesChannelsReq
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const queryClient = useQueryClient()
|
||||
return useMutation(
|
||||
(payload: AdminPostSalesChannelsReq) => client.admin.salesChannels.create(payload),
|
||||
buildOptions(queryClient, adminSalesChannelsKeys.lists(), options)
|
||||
)
|
||||
}*/
|
||||
|
||||
/*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>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation(
|
||||
() => client.admin.salesChannels.delete(id),
|
||||
buildOptions(
|
||||
queryClient,
|
||||
[adminSalesChannelsKeys.lists(), adminSalesChannelsKeys.detail(id)],
|
||||
options
|
||||
)
|
||||
)
|
||||
}*/
|
||||
@@ -0,0 +1,51 @@
|
||||
import {
|
||||
AdminSalesChannelRes
|
||||
} from "@medusajs/medusa"
|
||||
import { Response } from "@medusajs/medusa-js"
|
||||
import { useQuery } from "react-query"
|
||||
import { useMedusa } from "../../../contexts"
|
||||
import { UseQueryOptionsWrapper } from "../../../types"
|
||||
import { queryKeysFactory } from "../../utils"
|
||||
|
||||
const ADMIN_SALES_CHANNELS_QUERY_KEY = `admin_sales_channels` as const
|
||||
|
||||
export const adminSalesChannelsKeys = queryKeysFactory(ADMIN_SALES_CHANNELS_QUERY_KEY)
|
||||
|
||||
type SalesChannelsQueryKeys = typeof adminSalesChannelsKeys
|
||||
|
||||
export const useAdminSalesChannel = (
|
||||
id: string,
|
||||
options?: UseQueryOptionsWrapper<
|
||||
Response<AdminSalesChannelRes>,
|
||||
Error,
|
||||
ReturnType<SalesChannelsQueryKeys["detail"]>
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const { data, ...rest } = useQuery(
|
||||
adminSalesChannelsKeys.detail(id),
|
||||
() => client.admin.salesChannels.retrieve(id),
|
||||
options
|
||||
)
|
||||
return { ...data, ...rest } as const
|
||||
}
|
||||
|
||||
/*
|
||||
export const useAdminSalesChannels = (
|
||||
query?: AdminGetSalesChannelsParams,
|
||||
options?: UseQueryOptionsWrapper<
|
||||
Response<AdminProductsListRes>,
|
||||
Error,
|
||||
ReturnType<SalesChannelsQueryKeys["list"]>
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const { data, ...rest } = useQuery(
|
||||
adminProductKeys.list(query),
|
||||
() => client.admin.salesChannels.list(query),
|
||||
options
|
||||
)
|
||||
return { ...data, ...rest } as const
|
||||
}
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
import {
|
||||
useAdminSalesChannel,
|
||||
} from "../../../../src"
|
||||
import { renderHook } from "@testing-library/react-hooks"
|
||||
import { fixtures } from "../../../../mocks/data"
|
||||
import { createWrapper } from "../../../utils"
|
||||
|
||||
describe("useAdminSalesChannel hook", () => {
|
||||
test("returns a product", async () => {
|
||||
const salesChannel = fixtures.get("sales_channel")
|
||||
const { result, waitFor } = renderHook(() => useAdminSalesChannel(salesChannel.id), {
|
||||
wrapper: createWrapper(),
|
||||
})
|
||||
|
||||
await waitFor(() => result.current.isSuccess)
|
||||
|
||||
expect(result.current.response.status).toEqual(200)
|
||||
expect(result.current.sales_channel).toEqual(salesChannel)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user