feat(js-sdk): Add API key (#8838)

* feat(js-sdk): Add API key

* address PR comments

* Allow params to create + update
This commit is contained in:
Oli Juhl
2024-08-28 13:07:06 +02:00
committed by GitHub
parent af6d43f0f0
commit dbe931ab00
13 changed files with 223 additions and 149 deletions

View File

@@ -1,63 +0,0 @@
import { AdminApiKeyListResponse, AdminApiKeyResponse } from "@medusajs/types"
import { CreateApiKeyReq, UpdateApiKeyReq } from "../../types/api-payloads"
import { ApiKeyDeleteRes } from "../../types/api-responses"
import { deleteRequest, getRequest, postRequest } from "./common"
const retrieveApiKey = async (id: string, query?: Record<string, any>) => {
return getRequest<AdminApiKeyResponse>(`/admin/api-keys/${id}`, query)
}
const listApiKeys = async (query?: Record<string, any>) => {
return getRequest<AdminApiKeyListResponse>(`/admin/api-keys`, query)
}
const deleteApiKey = async (id: string) => {
return deleteRequest<ApiKeyDeleteRes>(`/admin/api-keys/${id}`)
}
const revokeApiKey = async (id: string) => {
return postRequest<AdminApiKeyResponse>(`/admin/api-keys/${id}/revoke`)
}
const createApiKey = async (payload: CreateApiKeyReq) => {
return postRequest<AdminApiKeyResponse>(`/admin/api-keys`, payload)
}
const updateApiKey = async (id: string, payload: UpdateApiKeyReq) => {
return postRequest<AdminApiKeyResponse>(`/admin/api-keys/${id}`, payload)
}
const batchRemoveSalesChannelsFromApiKey = async (
id: string,
payload: { sales_channel_ids: string[] }
) => {
return postRequest<AdminApiKeyResponse>(
`/admin/api-keys/${id}/sales-channels`,
{
remove: payload.sales_channel_ids,
}
)
}
const batchAddSalesChannelsFromApiKey = async (
id: string,
payload: { sales_channel_ids: string[] }
) => {
return postRequest<AdminApiKeyResponse>(
`/admin/api-keys/${id}/sales-channels`,
{
add: payload.sales_channel_ids,
}
)
}
export const apiKeys = {
retrieve: retrieveApiKey,
list: listApiKeys,
delete: deleteApiKey,
create: createApiKey,
update: updateApiKey,
revoke: revokeApiKey,
batchRemoveSalesChannels: batchRemoveSalesChannelsFromApiKey,
batchAddSalesChannels: batchAddSalesChannelsFromApiKey,
}

View File

@@ -1,5 +1,4 @@
import Medusa from "@medusajs/js-sdk"
import { apiKeys } from "./api-keys"
import { campaigns } from "./campaigns"
import { categories } from "./categories"
import { currencies } from "./currencies"
@@ -24,7 +23,6 @@ import { workflowExecutions } from "./workflow-executions"
export const backendUrl = __BACKEND_URL__ ?? "http://localhost:9000"
export const client = {
apiKeys: apiKeys,
campaigns: campaigns,
categories: categories,
customerGroups: customerGroups,