38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { NextRequest } from "next/server";
|
|
import { getTask, getEstimatedTime } from "@/lib/testcase-backend";
|
|
|
|
export async function GET(
|
|
_req: NextRequest,
|
|
{ params }: { params: Promise<{ taskId: string }> }
|
|
) {
|
|
const { taskId } = await params;
|
|
if (!taskId) {
|
|
return Response.json({ error: "缺少 taskId" }, { status: 400 });
|
|
}
|
|
|
|
const task = getTask(taskId);
|
|
if (!task) {
|
|
return Response.json({ error: "任务未找到" }, { status: 404 });
|
|
}
|
|
|
|
const runningTime = Math.floor((Date.now() - task.createdAt.getTime()) / 1000);
|
|
const estimated_time = getEstimatedTime(task.serviceLevel, task.testCaseCount);
|
|
|
|
return Response.json({
|
|
task_id: task.id,
|
|
status: task.status,
|
|
progress: task.progress,
|
|
title: task.title,
|
|
english_name: task.englishName,
|
|
test_case_count: task.testCaseCount,
|
|
generated_cases: task.generatedCases ?? 0,
|
|
service_level: task.serviceLevel,
|
|
created_at: task.createdAt,
|
|
updated_at: task.updatedAt,
|
|
running_time: runningTime,
|
|
estimated_time,
|
|
error_message: task.errorMessage ?? undefined,
|
|
currentMessage: task.currentMessage ?? undefined,
|
|
});
|
|
}
|