feat(medusa-js, medusa-react): PublishableKeys SC management (#2734)

This commit is contained in:
Frane Polić
2022-12-07 12:16:48 +01:00
committed by GitHub
parent 322d462311
commit 3b2c929408
6 changed files with 228 additions and 3 deletions

View File

@@ -6,6 +6,7 @@ import {
AdminPublishableApiKeysRes,
AdminPostPublishableApiKeysPublishableApiKeyReq,
AdminPostPublishableApiKeysReq,
AdminPostPublishableApiKeySalesChannelsBatchReq,
} from "@medusajs/medusa"
import { buildOptions } from "../../utils/buildOptions"
@@ -97,3 +98,47 @@ export const useAdminRevokePublishableApiKey = (
)
)
}
export const useAdminAddPublishableKeySalesChannelsBatch = (
id: string,
options?: UseMutationOptions<
Response<AdminPublishableApiKeysRes>,
Error,
AdminPostPublishableApiKeySalesChannelsBatchReq
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
(payload: AdminPostPublishableApiKeySalesChannelsBatchReq) =>
client.admin.publishableApiKeys.addSalesChannelsBatch(id, payload),
buildOptions(
queryClient,
[adminPublishableApiKeysKeys.detailSalesChannels(id)],
options
)
)
}
export const useAdminRemovePublishableKeySalesChannelsBatch = (
id: string,
options?: UseMutationOptions<
Response<AdminPublishableApiKeysRes>,
Error,
AdminPostPublishableApiKeySalesChannelsBatchReq
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
(payload: AdminPostPublishableApiKeySalesChannelsBatchReq) =>
client.admin.publishableApiKeys.deleteSalesChannelsBatch(id, payload),
buildOptions(
queryClient,
[adminPublishableApiKeysKeys.detailSalesChannels(id)],
options
)
)
}

View File

@@ -1,6 +1,8 @@
import {
AdminPublishableApiKeysListRes,
AdminPublishableApiKeysRes,
AdminSalesChannelsListRes,
GetPublishableApiKeySalesChannelsParams,
GetPublishableApiKeysParams,
} from "@medusajs/medusa"
import { useQuery } from "react-query"
@@ -13,9 +15,17 @@ 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
)
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 = (
@@ -52,3 +62,21 @@ export const useAdminPublishableApiKeys = (
)
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
}