feat(medusa-js, medusa-react): PublishableApiKeys clients (#2582)

**What**
- add `PublishableApiKeys` endpoints to the `medusa-js` and `medusa-react` clients

--- 

RESOLVES CORE-791
DEPENDS ON https://github.com/medusajs/medusa/pull/2567
This commit is contained in:
Frane Polić
2022-11-15 16:41:58 +01:00
committed by GitHub
parent 4baa2e0149
commit 3de553c27f
11 changed files with 382 additions and 2 deletions

View File

@@ -17,6 +17,7 @@ export * from "./price-lists"
export * from "./product-tags"
export * from "./product-types"
export * from "./products"
export * from "./publishable-api-keys"
export * from "./regions"
export * from "./return-reasons"
export * from "./returns"

View File

@@ -0,0 +1,2 @@
export * from "./queries"
export * from "./mutations"

View File

@@ -0,0 +1,66 @@
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
import { Response } from "@medusajs/medusa-js"
import {
AdminPublishableApiKeyDeleteRes,
AdminPublishableApiKeysRes,
} from "@medusajs/medusa"
import { buildOptions } from "../../utils/buildOptions"
import { useMedusa } from "../../../contexts"
import { adminPublishableApiKeysKeys } from "."
export const useAdminCreatePublishableApiKey = (
options?: UseMutationOptions<Response<AdminPublishableApiKeysRes>, Error, {}>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
(payload: {}) => client.admin.publishableApiKeys.create(payload),
buildOptions(queryClient, [adminPublishableApiKeysKeys.lists()], options)
)
}
export const useAdminDeletePublishableApiKey = (
id: string,
options?: UseMutationOptions<
Response<AdminPublishableApiKeyDeleteRes>,
Error,
void
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
() => client.admin.publishableApiKeys.delete(id),
buildOptions(
queryClient,
[
adminPublishableApiKeysKeys.detail(id),
adminPublishableApiKeysKeys.lists(),
],
options
)
)
}
export const useAdminRevokePublishableApiKey = (
id: string,
options?: UseMutationOptions<Response<AdminPublishableApiKeysRes>, Error>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
() => client.admin.publishableApiKeys.revoke(id),
buildOptions(
queryClient,
[
adminPublishableApiKeysKeys.lists(),
adminPublishableApiKeysKeys.detail(id),
],
options
)
)
}

View File

@@ -0,0 +1,54 @@
import {
AdminPublishableApiKeysListRes,
AdminPublishableApiKeysRes,
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
)
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
}