Skip to article
Documentation

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)));
});