feat: Bring back API key sales channel management (#6976)
- Add API key sales channel management - Add HTTP responses for API keys and sales channels - Use HTTP responses in `dashboard` and remove now redundant types
This commit is contained in:
@@ -10,11 +10,9 @@ import { client } from "../../lib/client"
|
||||
import { queryClient } from "../../lib/medusa"
|
||||
import { queryKeysFactory } from "../../lib/query-key-factory"
|
||||
import { CreateApiKeyReq, UpdateApiKeyReq } from "../../types/api-payloads"
|
||||
import {
|
||||
ApiKeyDeleteRes,
|
||||
ApiKeyListRes,
|
||||
ApiKeyRes,
|
||||
} from "../../types/api-responses"
|
||||
import { ApiKeyDeleteRes } from "../../types/api-responses"
|
||||
import { AdminApiKeyResponse, AdminApiKeyListResponse } from "@medusajs/types"
|
||||
import { salesChannelsQueryKeys } from "./sales-channels"
|
||||
|
||||
const API_KEYS_QUERY_KEY = "api_keys" as const
|
||||
export const apiKeysQueryKeys = queryKeysFactory(API_KEYS_QUERY_KEY)
|
||||
@@ -23,7 +21,7 @@ export const useApiKey = (
|
||||
id: string,
|
||||
query?: Record<string, any>,
|
||||
options?: Omit<
|
||||
UseQueryOptions<ApiKeyRes, Error, ApiKeyRes, QueryKey>,
|
||||
UseQueryOptions<AdminApiKeyResponse, Error, AdminApiKeyResponse, QueryKey>,
|
||||
"queryKey" | "queryFn"
|
||||
>
|
||||
) => {
|
||||
@@ -39,7 +37,12 @@ export const useApiKey = (
|
||||
export const useApiKeys = (
|
||||
query?: Record<string, any>,
|
||||
options?: Omit<
|
||||
UseQueryOptions<ApiKeyListRes, Error, ApiKeyListRes, QueryKey>,
|
||||
UseQueryOptions<
|
||||
AdminApiKeyListResponse,
|
||||
Error,
|
||||
AdminApiKeyListResponse,
|
||||
QueryKey
|
||||
>,
|
||||
"queryKey" | "queryFn"
|
||||
>
|
||||
) => {
|
||||
@@ -53,7 +56,7 @@ export const useApiKeys = (
|
||||
}
|
||||
|
||||
export const useCreateApiKey = (
|
||||
options?: UseMutationOptions<ApiKeyRes, Error, CreateApiKeyReq>
|
||||
options?: UseMutationOptions<AdminApiKeyResponse, Error, CreateApiKeyReq>
|
||||
) => {
|
||||
return useMutation({
|
||||
mutationFn: (payload) => client.apiKeys.create(payload),
|
||||
@@ -68,7 +71,7 @@ export const useCreateApiKey = (
|
||||
|
||||
export const useUpdateApiKey = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<ApiKeyRes, Error, UpdateApiKeyReq>
|
||||
options?: UseMutationOptions<AdminApiKeyResponse, Error, UpdateApiKeyReq>
|
||||
) => {
|
||||
return useMutation({
|
||||
mutationFn: (payload) => client.apiKeys.update(id, payload),
|
||||
@@ -84,7 +87,7 @@ export const useUpdateApiKey = (
|
||||
|
||||
export const useRevokeApiKey = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<ApiKeyRes, Error, void>
|
||||
options?: UseMutationOptions<AdminApiKeyResponse, Error, void>
|
||||
) => {
|
||||
return useMutation({
|
||||
mutationFn: () => client.apiKeys.revoke(id),
|
||||
@@ -111,3 +114,50 @@ export const useDeleteApiKey = (
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
export const useBatchRemoveSalesChannelsFromApiKey = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<
|
||||
AdminApiKeyResponse,
|
||||
Error,
|
||||
{ sales_channel_ids: string[] }
|
||||
>
|
||||
) => {
|
||||
return useMutation({
|
||||
mutationFn: (payload) =>
|
||||
client.apiKeys.batchRemoveSalesChannels(id, payload),
|
||||
onSuccess: (data, variables, context) => {
|
||||
queryClient.invalidateQueries({ queryKey: apiKeysQueryKeys.lists() })
|
||||
queryClient.invalidateQueries({ queryKey: apiKeysQueryKeys.detail(id) })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: salesChannelsQueryKeys.lists(),
|
||||
})
|
||||
|
||||
options?.onSuccess?.(data, variables, context)
|
||||
},
|
||||
...options,
|
||||
})
|
||||
}
|
||||
|
||||
export const useBatchAddSalesChannelsToApiKey = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<
|
||||
AdminApiKeyResponse,
|
||||
Error,
|
||||
{ sales_channel_ids: string[] }
|
||||
>
|
||||
) => {
|
||||
return useMutation({
|
||||
mutationFn: (payload) => client.apiKeys.batchAddSalesChannels(id, payload),
|
||||
onSuccess: (data, variables, context) => {
|
||||
queryClient.invalidateQueries({ queryKey: apiKeysQueryKeys.lists() })
|
||||
queryClient.invalidateQueries({ queryKey: apiKeysQueryKeys.detail(id) })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: salesChannelsQueryKeys.lists(),
|
||||
})
|
||||
|
||||
options?.onSuccess?.(data, variables, context)
|
||||
},
|
||||
...options,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -15,20 +15,25 @@ import {
|
||||
RemoveProductsSalesChannelReq,
|
||||
UpdateSalesChannelReq,
|
||||
} from "../../types/api-payloads"
|
||||
import {
|
||||
SalesChannelDeleteRes,
|
||||
SalesChannelListRes,
|
||||
SalesChannelRes,
|
||||
} from "../../types/api-responses"
|
||||
import { SalesChannelDeleteRes } from "../../types/api-responses"
|
||||
import { productsQueryKeys } from "./products"
|
||||
import {
|
||||
AdminSalesChannelListResponse,
|
||||
AdminSalesChannelResponse,
|
||||
} from "@medusajs/types"
|
||||
|
||||
const SALES_CHANNELS_QUERY_KEY = "sales-channels" as const
|
||||
const salesChannelsQueryKeys = queryKeysFactory(SALES_CHANNELS_QUERY_KEY)
|
||||
export const salesChannelsQueryKeys = queryKeysFactory(SALES_CHANNELS_QUERY_KEY)
|
||||
|
||||
export const useSalesChannel = (
|
||||
id: string,
|
||||
options?: Omit<
|
||||
UseQueryOptions<SalesChannelRes, Error, SalesChannelRes, QueryKey>,
|
||||
UseQueryOptions<
|
||||
AdminSalesChannelResponse,
|
||||
Error,
|
||||
AdminSalesChannelResponse,
|
||||
QueryKey
|
||||
>,
|
||||
"queryFn" | "queryKey"
|
||||
>
|
||||
) => {
|
||||
@@ -44,7 +49,12 @@ export const useSalesChannel = (
|
||||
export const useSalesChannels = (
|
||||
query?: Record<string, any>,
|
||||
options?: Omit<
|
||||
UseQueryOptions<SalesChannelListRes, Error, SalesChannelListRes, QueryKey>,
|
||||
UseQueryOptions<
|
||||
AdminSalesChannelListResponse,
|
||||
Error,
|
||||
AdminSalesChannelListResponse,
|
||||
QueryKey
|
||||
>,
|
||||
"queryFn" | "queryKey"
|
||||
>
|
||||
) => {
|
||||
@@ -58,7 +68,11 @@ export const useSalesChannels = (
|
||||
}
|
||||
|
||||
export const useCreateSalesChannel = (
|
||||
options?: UseMutationOptions<SalesChannelRes, Error, CreateSalesChannelReq>
|
||||
options?: UseMutationOptions<
|
||||
AdminSalesChannelResponse,
|
||||
Error,
|
||||
CreateSalesChannelReq
|
||||
>
|
||||
) => {
|
||||
return useMutation({
|
||||
mutationFn: (payload) => client.salesChannels.create(payload),
|
||||
@@ -74,7 +88,11 @@ export const useCreateSalesChannel = (
|
||||
|
||||
export const useUpdateSalesChannel = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<SalesChannelRes, Error, UpdateSalesChannelReq>
|
||||
options?: UseMutationOptions<
|
||||
AdminSalesChannelResponse,
|
||||
Error,
|
||||
UpdateSalesChannelReq
|
||||
>
|
||||
) => {
|
||||
return useMutation({
|
||||
mutationFn: (payload) => client.salesChannels.update(id, payload),
|
||||
@@ -120,7 +138,7 @@ export const useDeleteSalesChannel = (
|
||||
export const useSalesChannelRemoveProducts = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<
|
||||
SalesChannelRes,
|
||||
AdminSalesChannelResponse,
|
||||
Error,
|
||||
RemoveProductsSalesChannelReq
|
||||
>
|
||||
@@ -156,7 +174,7 @@ export const useSalesChannelRemoveProducts = (
|
||||
export const useSalesChannelAddProducts = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<
|
||||
SalesChannelRes,
|
||||
AdminSalesChannelResponse,
|
||||
Error,
|
||||
AddProductsSalesChannelReq
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user