Files
MoviePilot-Frontend/src/api/manage.ts
T
jxxghp b65682da53 refactor(api): LLM 提供商管理调用适配后端通用 manage 接口
- manage.ts 扩展 manageLlmProvider,端点联合类型纳入 llm/manage
- useLlmProviderDirectory 的目录/模型查询、授权启动/轮询/断开
  全部改走 POST /llm/manage(target+action+params 透传)
- 系统设置页 LLM 测试调用改走 manage,provider 字段转为 target
- 同步更新 composable 与系统设置页测试断言(GET mock 转 POST)
2026-08-16 07:50:39 +08:00

54 lines
1.8 KiB
TypeScript

import type { AxiosRequestConfig } from 'axios'
import api from './index'
/** 通用管理请求:目标标识 + 管理动作 + 透传参数,与后端 ManageRequest 一致。 */
export interface ManageRequest {
target: string
action: string
params?: Record<string, unknown>
}
/**
* 调用统一管理端点(通知渠道 / 网盘存储 / LLM 提供商)
*
* 端点层不定义任何目标特定的名称与参数,
* 目标标识、管理动作与表单参数原样透传给后端模块
*/
function manageTarget<T = Record<string, unknown>>(
endpoint: 'notification/manage' | 'storage/manage' | 'llm/manage',
request: ManageRequest,
config?: AxiosRequestConfig,
): Promise<T> {
return api.post<T>(endpoint, { params: {}, ...request }, config)
}
/** 对指定通知渠道执行管理动作,返回响应中的业务数据。 */
export function manageNotificationChannel<T = Record<string, unknown>>(
channel: string,
action: string,
params: Record<string, unknown> = {},
config?: AxiosRequestConfig,
): Promise<T> {
return manageTarget<T>('notification/manage', { target: channel, action, params }, config)
}
/** 对指定网盘存储执行管理动作,返回响应中的业务数据。 */
export function manageStorage<T = Record<string, unknown>>(
storage: string,
action: string,
params: Record<string, unknown> = {},
config?: AxiosRequestConfig,
): Promise<T> {
return manageTarget<T>('storage/manage', { target: storage, action, params }, config)
}
/** 对指定 LLM 提供商执行管理动作,返回响应中的业务数据。 */
export function manageLlmProvider<T = Record<string, unknown>>(
provider: string,
action: string,
params: Record<string, unknown> = {},
config?: AxiosRequestConfig,
): Promise<T> {
return manageTarget<T>('llm/manage', { target: provider, action, params }, config)
}