Files
MIS-Contro-Tower/app/api/recap/[machineId]/route.ts
2026-04-24 14:06:15 +00:00

38 lines
1.1 KiB
TypeScript

import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";
import { requireSession } from "@/lib/auth/requireSession";
import { getRecapMachineDetailCached, parseRecapDetailRangeInput } from "@/lib/recap/redesign";
export async function GET(
req: NextRequest,
{ params }: { params: Promise<{ machineId: string }> }
) {
const session = await requireSession();
if (!session) {
return NextResponse.json({ ok: false, error: "Unauthorized" }, { status: 401 });
}
const { machineId } = await params;
if (!machineId) {
return NextResponse.json({ ok: false, error: "machineId is required" }, { status: 400 });
}
const url = new URL(req.url);
const input = parseRecapDetailRangeInput(url.searchParams);
const detail = await getRecapMachineDetailCached({
orgId: session.orgId,
machineId,
input,
});
if (!detail) {
return NextResponse.json({ ok: false, error: "Machine not found" }, { status: 404 });
}
return NextResponse.json(detail, {
headers: {
"Cache-Control": "private, max-age=60, stale-while-revalidate=60",
},
});
}