/** * System API endpoints for admin operations */ import { apiClient } from '../client'; export interface ReleaseInfo { name: string; body: string; published_at: string; html_url: string; } export interface VersionInfo { current_version: string; latest_version: string; has_update: boolean; release_info?: ReleaseInfo; cached: boolean; warning?: string; build_type: string; // "source" for manual builds, "release" for CI builds } /** * Get current version */ export async function getVersion(): Promise<{ version: string }> { const { data } = await apiClient.get<{ version: string }>('/admin/system/version'); return data; } /** * Check for updates * @param force - Force refresh from GitHub API */ export async function checkUpdates(force = false): Promise { const { data } = await apiClient.get('/admin/system/check-updates', { params: force ? { force: 'true' } : undefined, }); return data; } export interface UpdateResult { message: string; need_restart: boolean; } /** * Perform system update * Downloads and applies the latest version */ export async function performUpdate(): Promise { const { data } = await apiClient.post('/admin/system/update'); return data; } /** * Rollback to previous version */ export async function rollback(): Promise { const { data } = await apiClient.post('/admin/system/rollback'); return data; } /** * Restart the service */ export async function restartService(): Promise<{ message: string }> { const { data } = await apiClient.post<{ message: string }>('/admin/system/restart'); return data; } export const systemAPI = { getVersion, checkUpdates, performUpdate, rollback, restartService, }; export default systemAPI;