234 lines
5.9 KiB
JavaScript
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 已废弃'))
|
|
}
|