disclosure-bureau/web/app/api/pages/[docId]/[page]/route.ts

24 lines
833 B
TypeScript

import { NextResponse } from "next/server";
import { readPage, readOcr } from "@/lib/wiki";
import { readMatches } from "@/lib/entity-index";
export async function GET(_req: Request, ctx: { params: Promise<{ docId: string; page: string }> }) {
const { docId, page } = await ctx.params;
const stem = /^p\d{3}$/.test(page) ? page : `p${page.padStart(3, "0")}`;
const md = await readPage(docId, stem);
if (!md) return NextResponse.json({ error: "not_found" }, { status: 404 });
const pageNum = parseInt(stem.replace("p", ""), 10);
const ocr = await readOcr(docId, pageNum);
const matches = await readMatches(docId, stem);
return NextResponse.json({
doc_id: docId,
page_id: md.fm.page_id ?? `${docId}/${stem}`,
page_number: pageNum,
frontmatter: md.fm,
body: md.body,
ocr,
matches,
});
}