fix: tasks.ts mock → 真实 API 迁移,对接后端方案 A #110
+21
-25
@@ -1,9 +1,14 @@
|
||||
/**
|
||||
* 任务相关 API
|
||||
* Phase 1 重构:去掉 projectId,任务直接归属用户
|
||||
* 对接后端方案 A 扩展后的端点(PR #109)
|
||||
* - POST /api/v1/generation/tasks — 创建生成任务(template_id + asset_ids 细粒度模式)
|
||||
* - GET /api/v1/tasks — 用户级任务列表(跨 project)
|
||||
* - POST /api/v1/tasks/{task_id}/retry — 简化重试
|
||||
*/
|
||||
import apiClient from './client';
|
||||
|
||||
/* ──────────── 类型定义 ──────────── */
|
||||
|
||||
/** 任务条目 */
|
||||
export interface TaskItem {
|
||||
id: string;
|
||||
@@ -19,18 +24,6 @@ export interface TaskItem {
|
||||
updated_at?: string | null;
|
||||
}
|
||||
|
||||
/** 获取当前用户的所有任务(生成记录) */
|
||||
export const getUserTasks = async (): Promise<TaskItem[]> => {
|
||||
const response = await apiClient.get('/tasks');
|
||||
return response.data.items || [];
|
||||
};
|
||||
|
||||
/** 重试失败的任务 */
|
||||
export const retryTask = async (taskId: string): Promise<TaskItem> => {
|
||||
const response = await apiClient.post(`/tasks/${taskId}/retry`);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
/** 创建生成任务请求参数 */
|
||||
export interface CreateGenerationTaskRequest {
|
||||
template_id: string;
|
||||
@@ -46,24 +39,27 @@ export interface CreateGenerationTaskResponse {
|
||||
message: string;
|
||||
}
|
||||
|
||||
// TODO: 后端生成接口适配扁平化架构后切换为 false
|
||||
const USE_MOCK = true;
|
||||
/* ──────────── API 函数 ──────────── */
|
||||
|
||||
/** 创建生成任务(一键生成) */
|
||||
export const createGenerationTask = async (
|
||||
params: CreateGenerationTaskRequest,
|
||||
): Promise<CreateGenerationTaskResponse> => {
|
||||
if (USE_MOCK) {
|
||||
await new Promise((r) => setTimeout(r, 800));
|
||||
return {
|
||||
task_id: `task_${Date.now()}`,
|
||||
status: 'pending',
|
||||
message: '生成任务已创建',
|
||||
};
|
||||
}
|
||||
const response = await apiClient.post<CreateGenerationTaskResponse>(
|
||||
const { data } = await apiClient.post<CreateGenerationTaskResponse>(
|
||||
'/generation/tasks',
|
||||
params,
|
||||
);
|
||||
return response.data;
|
||||
return data;
|
||||
};
|
||||
|
||||
/** 获取当前用户的所有任务(跨 project) */
|
||||
export const getUserTasks = async (): Promise<TaskItem[]> => {
|
||||
const { data } = await apiClient.get('/tasks');
|
||||
return data.items || [];
|
||||
};
|
||||
|
||||
/** 重试失败的任务 */
|
||||
export const retryTask = async (taskId: string): Promise<TaskItem> => {
|
||||
const { data } = await apiClient.post(`/tasks/${taskId}/retry`);
|
||||
return data;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user