shuzhiren-comfyui/frontend/src/api/index.js

234 lines
5.9 KiB
JavaScript

import request from '@/utils/request'
import axios from 'axios'
const messageDispatcherRequest = axios.create({
baseURL: '/api',
timeout: 10000
})
messageDispatcherRequest.interceptors.request.use(
(config) => {
const accessToken = sessionStorage.getItem('accessToken')
if (accessToken) {
config.headers.Authorization = `Bearer ${accessToken}`
}
return config
},
(error) => {
return Promise.reject(error)
}
)
// ==================== 认证相关 API (通过 message-dispatcher) ====================
export async function login(username, password) {
const res = await messageDispatcherRequest.post('/auth/login', { username, password })
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '登录失败')
}
export async function refreshToken(refreshToken) {
const res = await messageDispatcherRequest.post('/auth/refresh', { refreshToken })
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '刷新令牌失败')
}
export async function logout(refreshToken) {
const res = await messageDispatcherRequest.post('/auth/logout', { refreshToken })
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '登出失败')
}
export async function getMe() {
const res = await messageDispatcherRequest.get('/auth/me')
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '获取用户信息失败')
}
// ==================== 实例相关 API (通过 message-dispatcher) ====================
export async function getInstances() {
const res = await messageDispatcherRequest.get('/instances')
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '获取实例列表失败')
}
export async function getInstance(instanceId) {
const res = await messageDispatcherRequest.get(`/instances/${instanceId}`)
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '获取实例详情失败')
}
export async function checkInstanceHealth(instanceId) {
const res = await messageDispatcherRequest.post(`/instances/${instanceId}/health-check`)
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '检查实例健康状态失败')
}
export async function checkOfflineInstancesHealth() {
const res = await messageDispatcherRequest.post('/instances/health-check-offline')
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '检查离线实例失败')
}
export async function checkAllInstancesHealth() {
const res = await messageDispatcherRequest.post('/instances/health-check-all')
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '检查全部实例失败')
}
// ==================== 桥接器相关 API ====================
export async function getMessageDispatcherHealth() {
const res = await messageDispatcherRequest.get('/health')
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '请求失败')
}
export async function getBridges() {
const res = await messageDispatcherRequest.get('/bridges')
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '请求失败')
}
export async function getBridge(bridgeId) {
const res = await messageDispatcherRequest.get(`/bridges/${bridgeId}`)
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '请求失败')
}
export async function getDispatcherOverview() {
const res = await messageDispatcherRequest.get('/overview')
if (res.data.success) {
return res.data.data
}
throw new Error(res.data.message || '请求失败')
}
// ==================== 配置相关 API (保持旧接口兼容) ====================
export function getConfig() {
return request({
url: '/config',
method: 'get'
})
}
export function updateConfig(data) {
return request({
url: '/config',
method: 'put',
data
})
}
export function getMessageDispatcherConfig() {
return request({
url: '/config/message-dispatcher',
method: 'get'
})
}
export function updateMessageDispatcherConfig(data) {
return request({
url: '/config/message-dispatcher',
method: 'put',
data
})
}
export function reconnectMessageDispatcher() {
return request({
url: '/message-dispatcher/reconnect',
method: 'post'
})
}
// ==================== 监控相关 API (保持旧接口兼容) ====================
export function getMonitorOverview() {
return request({
url: '/monitor/overview',
method: 'get'
})
}
export function healthCheck() {
return request({
url: '/health',
method: 'get'
})
}
// ==================== 任务相关 API (保持旧接口兼容) ====================
export function getTasks(status) {
return request({
url: '/tasks',
method: 'get',
params: { status }
})
}
export function getTask(taskId) {
return request({
url: `/tasks/${taskId}`,
method: 'get'
})
}
export function submitTask(data) {
return request({
url: '/tasks',
method: 'post',
data
})
}
export function cancelTask(taskId) {
return request({
url: `/tasks/${taskId}`,
method: 'delete'
})
}
// 保持旧接口兼容 - 这些功能现已由 message-dispatcher 处理
export function addInstance(data) {
console.warn('addInstance API 已废弃,实例配置应在桥接器端管理')
return Promise.reject(new Error('API 已废弃'))
}
export function updateInstance(instanceId, data) {
console.warn('updateInstance API 已废弃,实例配置应在桥接器端管理')
return Promise.reject(new Error('API 已废弃'))
}
export function deleteInstance(instanceId) {
console.warn('deleteInstance API 已废弃,实例配置应在桥接器端管理')
return Promise.reject(new Error('API 已废弃'))
}