summaryrefslogtreecommitdiff
path: root/app/routes/api.events.$id.ts
blob: 0f0f2e876f1d0b4cbdc3cc49abee7a4a70759852 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
 * GET /api/events/:id
 */
import type { Route } from "./+types/api.events.$id";
import { getEvent } from "~/lib/db.server";

export async function loader({ params }: Route.LoaderArgs) {
  const id = parseInt(params.id, 10);
  if (Number.isNaN(id)) {
    return Response.json({ error: "Invalid id" }, { status: 400 });
  }

  const event = getEvent(id);
  if (!event) {
    return Response.json({ error: "Not found" }, { status: 404 });
  }

  return Response.json(
    { event },
    { headers: { "Cache-Control": "public, max-age=300" } }
  );
}