import { executeCanvasImageResponse } from "@/lib/canvas/generate-image-response"; import { NextResponse } from "next/server"; import { auth } from "@/app/(auth)/auth"; import { getCanvasImageTaskForUser } from "@/lib/canvas/image-task-queue"; export const maxDuration = 1200; export async function GET(request: Request) { try { const session = await auth(); if (!session?.user?.id) { return NextResponse.json({ success: false, error: "未登录" }, { status: 401 }); } const { searchParams } = new URL(request.url); const taskId = String(searchParams.get("taskId") || "").trim(); if (!taskId) { return NextResponse.json({ success: false, error: "缺少 taskId 参数" }, { status: 400 }); } const task = await getCanvasImageTaskForUser({ taskId, userId: session.user.id }); if (!task) { return NextResponse.json({ success: false, error: "任务不存在" }, { status: 404 }); } return NextResponse.json({ success: true, task: { id: task.id, status: task.status, attempts: task.attempts, error: task.error || null, result: task.result || null, createdAt: task.createdAt, startedAt: task.startedAt, completedAt: task.completedAt, queueStatus: task.queueStatus, }, }); } catch (error) { console.error("[Canvas Generate Image][TaskStatus] Error:", error); return NextResponse.json( { success: false, error: error instanceof Error ? error.message : "查询任务失败", }, { status: 500 }, ); } } export async function POST(request: Request) { const session = await auth(); if (!session?.user?.id) return NextResponse.json({ success: false, error: "未登录" }, { status: 401 }); const body = await request.json().catch(() => ({})); return executeCanvasImageResponse(body, session.user.id); }