src/app/api/inbox/route.ts
Linked repository file from this build.
import { serverTiming } from "@/lib/server-timing";
import { NextResponse } from "next/server";
import { apiRoute } from "@/lib/api-route";
import { getActor } from "@/lib/auth/server";
import { inboxQuerySchema } from "@/lib/db/inbox-query";
import { queryInbox } from "@/lib/db/inbox-store";
export const dynamic = "force-dynamic";
export const GET = apiRoute("Unable to load your inbox. Please retry.", async (request) => {
const timing = serverTiming();
const actor = await timing.measure("auth", () => getActor(request));
const query = inboxQuerySchema.safeParse(Object.fromEntries(new URL(request.url).searchParams));
if (!query.success)
return NextResponse.json({ error: "Check inbox page and date parameters." }, { status: 400 });
return timing.json(await timing.measure("data", () => queryInbox(actor, query.data)));
});