working on the backup management parts
This commit is contained in:
75
frontend/src/api/backup.ts
Normal file
75
frontend/src/api/backup.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
import apiClient from './client'
|
||||
|
||||
export interface BackupJob {
|
||||
id: string
|
||||
job_id: number
|
||||
job_name: string
|
||||
client_name: string
|
||||
job_type: string
|
||||
job_level: string
|
||||
status: 'Running' | 'Completed' | 'Failed' | 'Canceled' | 'Waiting'
|
||||
bytes_written: number
|
||||
files_written: number
|
||||
duration_seconds?: number
|
||||
started_at?: string
|
||||
ended_at?: string
|
||||
error_message?: string
|
||||
storage_name?: string
|
||||
pool_name?: string
|
||||
volume_name?: string
|
||||
created_at: string
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
export interface ListJobsResponse {
|
||||
jobs: BackupJob[]
|
||||
total: number
|
||||
limit: number
|
||||
offset: number
|
||||
}
|
||||
|
||||
export interface ListJobsParams {
|
||||
status?: string
|
||||
job_type?: string
|
||||
client_name?: string
|
||||
job_name?: string
|
||||
limit?: number
|
||||
offset?: number
|
||||
}
|
||||
|
||||
export interface CreateJobRequest {
|
||||
job_name: string
|
||||
client_name: string
|
||||
job_type: string
|
||||
job_level: string
|
||||
storage_name?: string
|
||||
pool_name?: string
|
||||
}
|
||||
|
||||
export const backupAPI = {
|
||||
listJobs: async (params?: ListJobsParams): Promise<ListJobsResponse> => {
|
||||
const queryParams = new URLSearchParams()
|
||||
if (params?.status) queryParams.append('status', params.status)
|
||||
if (params?.job_type) queryParams.append('job_type', params.job_type)
|
||||
if (params?.client_name) queryParams.append('client_name', params.client_name)
|
||||
if (params?.job_name) queryParams.append('job_name', params.job_name)
|
||||
if (params?.limit) queryParams.append('limit', params.limit.toString())
|
||||
if (params?.offset) queryParams.append('offset', params.offset.toString())
|
||||
|
||||
const response = await apiClient.get<ListJobsResponse>(
|
||||
`/backup/jobs${queryParams.toString() ? `?${queryParams.toString()}` : ''}`
|
||||
)
|
||||
return response.data
|
||||
},
|
||||
|
||||
getJob: async (id: string): Promise<BackupJob> => {
|
||||
const response = await apiClient.get<BackupJob>(`/backup/jobs/${id}`)
|
||||
return response.data
|
||||
},
|
||||
|
||||
createJob: async (data: CreateJobRequest): Promise<BackupJob> => {
|
||||
const response = await apiClient.post<BackupJob>('/backup/jobs', data)
|
||||
return response.data
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user