Files
NianAIGC/app/api/generations/image/[id]/route.ts
2026-05-29 12:32:02 +08:00

37 lines
1.3 KiB
TypeScript

import { deleteAsset, deleteGenerationJob, getAsset, getGenerationJob } from "@/lib/server/data-store";
import { jsonError, jsonOk } from "@/lib/server/api";
import { deleteStoredAsset } from "@/lib/server/storage";
export const runtime = "nodejs";
export async function GET(_request: Request, context: { params: Promise<{ id: string }> }) {
try {
const { id } = await context.params;
const job = await getGenerationJob(id);
if (!job) return jsonError(new Error("Generation job not found."), 404);
return jsonOk({ job });
} catch (error) {
return jsonError(error, 500);
}
}
export async function DELETE(_request: Request, context: { params: Promise<{ id: string }> }) {
try {
const { id } = await context.params;
const job = await getGenerationJob(id);
if (!job || job.capability === "video.generate") return jsonError("任务不存在", 404);
const deletedAssetIds: string[] = [];
for (const assetId of job.outputAssetIds) {
const asset = await getAsset(assetId);
if (!asset) continue;
await deleteStoredAsset(asset);
await deleteAsset(asset.id);
deletedAssetIds.push(asset.id);
}
await deleteGenerationJob(id);
return jsonOk({ ok: true, deletedJobId: id, deletedAssetIds });
} catch (error) {
return jsonError(error, 500);
}
}