refactor(api): scope oauth operations by integration
This commit is contained in:
parent
fd19fa89c4
commit
a772767e9b
19 changed files with 404 additions and 303 deletions
|
|
@ -419,7 +419,7 @@ export type IntegrationConnectKeyOperation<E = never> = (
|
|||
input: Endpoint10_2Input,
|
||||
) => Effect.Effect<Endpoint10_2Output, E>
|
||||
|
||||
type Endpoint10_3Request = Parameters<RawClient["server.integration"]["integration.connect.oauth"]>[0]
|
||||
type Endpoint10_3Request = Parameters<RawClient["server.integration"]["integration.oauth.connect"]>[0]
|
||||
export type Endpoint10_3Input = {
|
||||
readonly integrationID: Endpoint10_3Request["params"]["integrationID"]
|
||||
readonly location?: Endpoint10_3Request["query"]["location"]
|
||||
|
|
@ -427,55 +427,54 @@ export type Endpoint10_3Input = {
|
|||
readonly inputs: Endpoint10_3Request["payload"]["inputs"]
|
||||
readonly label?: Endpoint10_3Request["payload"]["label"]
|
||||
}
|
||||
export type Endpoint10_3Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.connect.oauth"]>>
|
||||
export type IntegrationConnectOauthOperation<E = never> = (
|
||||
export type Endpoint10_3Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.oauth.connect"]>>
|
||||
export type IntegrationOauthConnectOperation<E = never> = (
|
||||
input: Endpoint10_3Input,
|
||||
) => Effect.Effect<Endpoint10_3Output, E>
|
||||
|
||||
type Endpoint10_4Request = Parameters<RawClient["server.integration"]["integration.attempt.status"]>[0]
|
||||
type Endpoint10_4Request = Parameters<RawClient["server.integration"]["integration.oauth.status"]>[0]
|
||||
export type Endpoint10_4Input = {
|
||||
readonly integrationID: Endpoint10_4Request["params"]["integrationID"]
|
||||
readonly attemptID: Endpoint10_4Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint10_4Request["query"]["location"]
|
||||
}
|
||||
export type Endpoint10_4Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.attempt.status"]>>
|
||||
export type IntegrationAttemptStatusOperation<E = never> = (
|
||||
export type Endpoint10_4Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.oauth.status"]>>
|
||||
export type IntegrationOauthStatusOperation<E = never> = (
|
||||
input: Endpoint10_4Input,
|
||||
) => Effect.Effect<Endpoint10_4Output, E>
|
||||
|
||||
type Endpoint10_5Request = Parameters<RawClient["server.integration"]["integration.attempt.complete"]>[0]
|
||||
type Endpoint10_5Request = Parameters<RawClient["server.integration"]["integration.oauth.complete"]>[0]
|
||||
export type Endpoint10_5Input = {
|
||||
readonly integrationID: Endpoint10_5Request["params"]["integrationID"]
|
||||
readonly attemptID: Endpoint10_5Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint10_5Request["query"]["location"]
|
||||
readonly code?: Endpoint10_5Request["payload"]["code"]
|
||||
}
|
||||
export type Endpoint10_5Output = EffectValue<
|
||||
ReturnType<RawClient["server.integration"]["integration.attempt.complete"]>
|
||||
>
|
||||
export type IntegrationAttemptCompleteOperation<E = never> = (
|
||||
export type Endpoint10_5Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.oauth.complete"]>>
|
||||
export type IntegrationOauthCompleteOperation<E = never> = (
|
||||
input: Endpoint10_5Input,
|
||||
) => Effect.Effect<Endpoint10_5Output, E>
|
||||
|
||||
type Endpoint10_6Request = Parameters<RawClient["server.integration"]["integration.attempt.cancel"]>[0]
|
||||
type Endpoint10_6Request = Parameters<RawClient["server.integration"]["integration.oauth.cancel"]>[0]
|
||||
export type Endpoint10_6Input = {
|
||||
readonly integrationID: Endpoint10_6Request["params"]["integrationID"]
|
||||
readonly attemptID: Endpoint10_6Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint10_6Request["query"]["location"]
|
||||
}
|
||||
export type Endpoint10_6Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.attempt.cancel"]>>
|
||||
export type IntegrationAttemptCancelOperation<E = never> = (
|
||||
export type Endpoint10_6Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.oauth.cancel"]>>
|
||||
export type IntegrationOauthCancelOperation<E = never> = (
|
||||
input: Endpoint10_6Input,
|
||||
) => Effect.Effect<Endpoint10_6Output, E>
|
||||
|
||||
export interface IntegrationApi<E = never> {
|
||||
readonly list: IntegrationListOperation<E>
|
||||
readonly get: IntegrationGetOperation<E>
|
||||
readonly connect: {
|
||||
readonly key: IntegrationConnectKeyOperation<E>
|
||||
readonly oauth: IntegrationConnectOauthOperation<E>
|
||||
}
|
||||
readonly attempt: {
|
||||
readonly status: IntegrationAttemptStatusOperation<E>
|
||||
readonly complete: IntegrationAttemptCompleteOperation<E>
|
||||
readonly cancel: IntegrationAttemptCancelOperation<E>
|
||||
readonly connect: { readonly key: IntegrationConnectKeyOperation<E> }
|
||||
readonly oauth: {
|
||||
readonly connect: IntegrationOauthConnectOperation<E>
|
||||
readonly status: IntegrationOauthStatusOperation<E>
|
||||
readonly complete: IntegrationOauthCompleteOperation<E>
|
||||
readonly cancel: IntegrationOauthCancelOperation<E>
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -518,7 +518,7 @@ const Endpoint10_2 = (raw: RawClient["server.integration"]) => (input: Endpoint1
|
|||
payload: { key: input["key"], label: input["label"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint10_3Request = Parameters<RawClient["server.integration"]["integration.connect.oauth"]>[0]
|
||||
type Endpoint10_3Request = Parameters<RawClient["server.integration"]["integration.oauth.connect"]>[0]
|
||||
type Endpoint10_3Input = {
|
||||
readonly integrationID: Endpoint10_3Request["params"]["integrationID"]
|
||||
readonly location?: Endpoint10_3Request["query"]["location"]
|
||||
|
|
@ -527,52 +527,60 @@ type Endpoint10_3Input = {
|
|||
readonly label?: Endpoint10_3Request["payload"]["label"]
|
||||
}
|
||||
const Endpoint10_3 = (raw: RawClient["server.integration"]) => (input: Endpoint10_3Input) =>
|
||||
raw["integration.connect.oauth"]({
|
||||
raw["integration.oauth.connect"]({
|
||||
params: { integrationID: input["integrationID"] },
|
||||
query: { location: input["location"] },
|
||||
payload: { methodID: input["methodID"], inputs: input["inputs"], label: input["label"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint10_4Request = Parameters<RawClient["server.integration"]["integration.attempt.status"]>[0]
|
||||
type Endpoint10_4Request = Parameters<RawClient["server.integration"]["integration.oauth.status"]>[0]
|
||||
type Endpoint10_4Input = {
|
||||
readonly integrationID: Endpoint10_4Request["params"]["integrationID"]
|
||||
readonly attemptID: Endpoint10_4Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint10_4Request["query"]["location"]
|
||||
}
|
||||
const Endpoint10_4 = (raw: RawClient["server.integration"]) => (input: Endpoint10_4Input) =>
|
||||
raw["integration.attempt.status"]({
|
||||
params: { attemptID: input["attemptID"] },
|
||||
raw["integration.oauth.status"]({
|
||||
params: { integrationID: input["integrationID"], attemptID: input["attemptID"] },
|
||||
query: { location: input["location"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint10_5Request = Parameters<RawClient["server.integration"]["integration.attempt.complete"]>[0]
|
||||
type Endpoint10_5Request = Parameters<RawClient["server.integration"]["integration.oauth.complete"]>[0]
|
||||
type Endpoint10_5Input = {
|
||||
readonly integrationID: Endpoint10_5Request["params"]["integrationID"]
|
||||
readonly attemptID: Endpoint10_5Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint10_5Request["query"]["location"]
|
||||
readonly code?: Endpoint10_5Request["payload"]["code"]
|
||||
}
|
||||
const Endpoint10_5 = (raw: RawClient["server.integration"]) => (input: Endpoint10_5Input) =>
|
||||
raw["integration.attempt.complete"]({
|
||||
params: { attemptID: input["attemptID"] },
|
||||
raw["integration.oauth.complete"]({
|
||||
params: { integrationID: input["integrationID"], attemptID: input["attemptID"] },
|
||||
query: { location: input["location"] },
|
||||
payload: { code: input["code"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
type Endpoint10_6Request = Parameters<RawClient["server.integration"]["integration.attempt.cancel"]>[0]
|
||||
type Endpoint10_6Request = Parameters<RawClient["server.integration"]["integration.oauth.cancel"]>[0]
|
||||
type Endpoint10_6Input = {
|
||||
readonly integrationID: Endpoint10_6Request["params"]["integrationID"]
|
||||
readonly attemptID: Endpoint10_6Request["params"]["attemptID"]
|
||||
readonly location?: Endpoint10_6Request["query"]["location"]
|
||||
}
|
||||
const Endpoint10_6 = (raw: RawClient["server.integration"]) => (input: Endpoint10_6Input) =>
|
||||
raw["integration.attempt.cancel"]({
|
||||
params: { attemptID: input["attemptID"] },
|
||||
raw["integration.oauth.cancel"]({
|
||||
params: { integrationID: input["integrationID"], attemptID: input["attemptID"] },
|
||||
query: { location: input["location"] },
|
||||
}).pipe(Effect.mapError(mapClientError))
|
||||
|
||||
const adaptGroup10 = (raw: RawClient["server.integration"]) => ({
|
||||
list: Endpoint10_0(raw),
|
||||
get: Endpoint10_1(raw),
|
||||
connect: { key: Endpoint10_2(raw), oauth: Endpoint10_3(raw) },
|
||||
attempt: { status: Endpoint10_4(raw), complete: Endpoint10_5(raw), cancel: Endpoint10_6(raw) },
|
||||
connect: { key: Endpoint10_2(raw) },
|
||||
oauth: {
|
||||
connect: Endpoint10_3(raw),
|
||||
status: Endpoint10_4(raw),
|
||||
complete: Endpoint10_5(raw),
|
||||
cancel: Endpoint10_6(raw),
|
||||
},
|
||||
})
|
||||
|
||||
type Endpoint11_0Request = Parameters<RawClient["server.mcp"]["mcp.list"]>[0]
|
||||
|
|
|
|||
|
|
@ -84,14 +84,14 @@ import type {
|
|||
IntegrationGetOutput,
|
||||
IntegrationConnectKeyInput,
|
||||
IntegrationConnectKeyOutput,
|
||||
IntegrationConnectOauthInput,
|
||||
IntegrationConnectOauthOutput,
|
||||
IntegrationAttemptStatusInput,
|
||||
IntegrationAttemptStatusOutput,
|
||||
IntegrationAttemptCompleteInput,
|
||||
IntegrationAttemptCompleteOutput,
|
||||
IntegrationAttemptCancelInput,
|
||||
IntegrationAttemptCancelOutput,
|
||||
IntegrationOauthConnectInput,
|
||||
IntegrationOauthConnectOutput,
|
||||
IntegrationOauthStatusInput,
|
||||
IntegrationOauthStatusOutput,
|
||||
IntegrationOauthCompleteInput,
|
||||
IntegrationOauthCompleteOutput,
|
||||
IntegrationOauthCancelInput,
|
||||
IntegrationOauthCancelOutput,
|
||||
McpListInput,
|
||||
McpListOutput,
|
||||
McpResourceCatalogInput,
|
||||
|
|
@ -901,8 +901,10 @@ export function make(options: ClientOptions) {
|
|||
},
|
||||
requestOptions,
|
||||
),
|
||||
oauth: (input: IntegrationConnectOauthInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationConnectOauthOutput>(
|
||||
},
|
||||
oauth: {
|
||||
connect: (input: IntegrationOauthConnectInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationOauthConnectOutput>(
|
||||
{
|
||||
method: "POST",
|
||||
path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/oauth`,
|
||||
|
|
@ -914,13 +916,11 @@ export function make(options: ClientOptions) {
|
|||
},
|
||||
requestOptions,
|
||||
),
|
||||
},
|
||||
attempt: {
|
||||
status: (input: IntegrationAttemptStatusInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationAttemptStatusOutput>(
|
||||
status: (input: IntegrationOauthStatusInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationOauthStatusOutput>(
|
||||
{
|
||||
method: "GET",
|
||||
path: `/api/integration/attempt/${encodeURIComponent(input.attemptID)}`,
|
||||
path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/oauth/${encodeURIComponent(input.attemptID)}`,
|
||||
query: { location: input["location"] },
|
||||
successStatus: 200,
|
||||
declaredStatuses: [401, 400],
|
||||
|
|
@ -928,11 +928,11 @@ export function make(options: ClientOptions) {
|
|||
},
|
||||
requestOptions,
|
||||
),
|
||||
complete: (input: IntegrationAttemptCompleteInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationAttemptCompleteOutput>(
|
||||
complete: (input: IntegrationOauthCompleteInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationOauthCompleteOutput>(
|
||||
{
|
||||
method: "POST",
|
||||
path: `/api/integration/attempt/${encodeURIComponent(input.attemptID)}/complete`,
|
||||
path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/oauth/${encodeURIComponent(input.attemptID)}/complete`,
|
||||
query: { location: input["location"] },
|
||||
body: { code: input["code"] },
|
||||
successStatus: 204,
|
||||
|
|
@ -941,11 +941,11 @@ export function make(options: ClientOptions) {
|
|||
},
|
||||
requestOptions,
|
||||
),
|
||||
cancel: (input: IntegrationAttemptCancelInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationAttemptCancelOutput>(
|
||||
cancel: (input: IntegrationOauthCancelInput, requestOptions?: RequestOptions) =>
|
||||
request<IntegrationOauthCancelOutput>(
|
||||
{
|
||||
method: "DELETE",
|
||||
path: `/api/integration/attempt/${encodeURIComponent(input.attemptID)}`,
|
||||
path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/oauth/${encodeURIComponent(input.attemptID)}`,
|
||||
query: { location: input["location"] },
|
||||
successStatus: 204,
|
||||
declaredStatuses: [401, 400],
|
||||
|
|
|
|||
|
|
@ -3284,7 +3284,7 @@ export type IntegrationConnectKeyInput = {
|
|||
|
||||
export type IntegrationConnectKeyOutput = void
|
||||
|
||||
export type IntegrationConnectOauthInput = {
|
||||
export type IntegrationOauthConnectInput = {
|
||||
readonly integrationID: { readonly integrationID: string }["integrationID"]
|
||||
readonly location?: {
|
||||
readonly location?: { readonly directory?: string | undefined; readonly workspace?: string | undefined } | undefined
|
||||
|
|
@ -3306,7 +3306,7 @@ export type IntegrationConnectOauthInput = {
|
|||
}["label"]
|
||||
}
|
||||
|
||||
export type IntegrationConnectOauthOutput = {
|
||||
export type IntegrationOauthConnectOutput = {
|
||||
location: { directory: string; workspaceID?: string; project: { id: string; directory: string } }
|
||||
data: {
|
||||
attemptID: string
|
||||
|
|
@ -3317,36 +3317,39 @@ export type IntegrationConnectOauthOutput = {
|
|||
}
|
||||
}
|
||||
|
||||
export type IntegrationAttemptStatusInput = {
|
||||
readonly attemptID: { readonly attemptID: string }["attemptID"]
|
||||
export type IntegrationOauthStatusInput = {
|
||||
readonly integrationID: { readonly integrationID: string; readonly attemptID: string }["integrationID"]
|
||||
readonly attemptID: { readonly integrationID: string; readonly attemptID: string }["attemptID"]
|
||||
readonly location?: {
|
||||
readonly location?: { readonly directory?: string | undefined; readonly workspace?: string | undefined } | undefined
|
||||
}["location"]
|
||||
}
|
||||
|
||||
export type IntegrationAttemptStatusOutput = {
|
||||
export type IntegrationOauthStatusOutput = {
|
||||
location: { directory: string; workspaceID?: string; project: { id: string; directory: string } }
|
||||
data: IntegrationAttemptStatus
|
||||
}
|
||||
|
||||
export type IntegrationAttemptCompleteInput = {
|
||||
readonly attemptID: { readonly attemptID: string }["attemptID"]
|
||||
export type IntegrationOauthCompleteInput = {
|
||||
readonly integrationID: { readonly integrationID: string; readonly attemptID: string }["integrationID"]
|
||||
readonly attemptID: { readonly integrationID: string; readonly attemptID: string }["attemptID"]
|
||||
readonly location?: {
|
||||
readonly location?: { readonly directory?: string | undefined; readonly workspace?: string | undefined } | undefined
|
||||
}["location"]
|
||||
readonly code?: { readonly code?: string | undefined }["code"]
|
||||
}
|
||||
|
||||
export type IntegrationAttemptCompleteOutput = void
|
||||
export type IntegrationOauthCompleteOutput = void
|
||||
|
||||
export type IntegrationAttemptCancelInput = {
|
||||
readonly attemptID: { readonly attemptID: string }["attemptID"]
|
||||
export type IntegrationOauthCancelInput = {
|
||||
readonly integrationID: { readonly integrationID: string; readonly attemptID: string }["integrationID"]
|
||||
readonly attemptID: { readonly integrationID: string; readonly attemptID: string }["attemptID"]
|
||||
readonly location?: {
|
||||
readonly location?: { readonly directory?: string | undefined; readonly workspace?: string | undefined } | undefined
|
||||
}["location"]
|
||||
}
|
||||
|
||||
export type IntegrationAttemptCancelOutput = void
|
||||
export type IntegrationOauthCancelOutput = void
|
||||
|
||||
export type McpListInput = {
|
||||
readonly location?: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue