Files
medusa-store/packages/medusa-react/src/hooks/admin/publishable-api-keys/queries.ts

83 lines
2.3 KiB
TypeScript

import {
AdminPublishableApiKeysListRes,
AdminPublishableApiKeysRes,
AdminSalesChannelsListRes,
GetPublishableApiKeySalesChannelsParams,
GetPublishableApiKeysParams,
} from "@medusajs/medusa"
import { useQuery } from "react-query"
import { Response } from "@medusajs/medusa-js"
import { queryKeysFactory } from "../../utils"
import { useMedusa } from "../../../contexts"
import { UseQueryOptionsWrapper } from "../../../types"
const ADMIN_PUBLISHABLE_API_KEYS_QUERY_KEY =
`admin_publishable_api_keys` as const
export const adminPublishableApiKeysKeys = {
...queryKeysFactory(ADMIN_PUBLISHABLE_API_KEYS_QUERY_KEY),
detailSalesChannels(id: string, query?: any) {
return [
...this.detail(id),
"sales_channels" as const,
{ ...(query || {}) },
] as const
},
}
type PublishableApiKeyQueryKeys = typeof adminPublishableApiKeysKeys
export const useAdminPublishableApiKey = (
id: string,
query?: GetPublishableApiKeysParams,
options?: UseQueryOptionsWrapper<
Response<AdminPublishableApiKeysRes>,
Error,
ReturnType<PublishableApiKeyQueryKeys["detail"]>
>
) => {
const { client } = useMedusa()
const { data, ...rest } = useQuery(
adminPublishableApiKeysKeys.detail(id),
() => client.admin.publishableApiKeys.retrieve(id, query),
options
)
return { ...data, ...rest } as const
}
export const useAdminPublishableApiKeys = (
query?: GetPublishableApiKeysParams,
options?: UseQueryOptionsWrapper<
Response<AdminPublishableApiKeysListRes>,
Error,
ReturnType<PublishableApiKeyQueryKeys["list"]>
>
) => {
const { client } = useMedusa()
const { data, ...rest } = useQuery(
adminPublishableApiKeysKeys.list(query),
() => client.admin.publishableApiKeys.list(query),
options
)
return { ...data, ...rest } as const
}
export const useAdminPublishableApiKeySalesChannels = (
id: string,
query?: GetPublishableApiKeySalesChannelsParams,
options?: UseQueryOptionsWrapper<
Response<AdminSalesChannelsListRes>,
Error,
ReturnType<PublishableApiKeyQueryKeys["detailSalesChannels"]>
>
) => {
const { client } = useMedusa()
const { data, ...rest } = useQuery(
adminPublishableApiKeysKeys.detailSalesChannels(id, query),
() => client.admin.publishableApiKeys.listSalesChannels(id, query),
options
)
return { ...data, ...rest } as const
}