codev / desktop /src /api /tasks.ts
chenbhao's picture
feat: desktop
1f21206
Raw
History Blame
984 Bytes
import { api } from './client'
import type { CronTask, CreateTaskInput, TaskRun } from '../types/task'
type TasksResponse = { tasks: CronTask[] }
type TaskResponse = { task: CronTask }
type RunsResponse = { runs: TaskRun[] }
export const tasksApi = {
list() {
return api.get<TasksResponse>('/api/scheduled-tasks')
},
create(input: CreateTaskInput) {
return api.post<TaskResponse>('/api/scheduled-tasks', input)
},
update(id: string, updates: Partial<CronTask>) {
return api.put<TaskResponse>(`/api/scheduled-tasks/${id}`, updates)
},
delete(id: string) {
return api.delete<{ ok: true }>(`/api/scheduled-tasks/${id}`)
},
runTask(id: string) {
return api.post<{ ok: true }>(`/api/scheduled-tasks/${id}/run`, {})
},
getRecentRuns(limit = 50) {
return api.get<RunsResponse>(`/api/scheduled-tasks/runs?limit=${limit}`)
},
getTaskRuns(taskId: string) {
return api.get<RunsResponse>(`/api/scheduled-tasks/${taskId}/runs`)
},
}