← back to Trademarks Copyright

src/app/api/items/[id]/route.ts

22 lines

import { NextRequest, NextResponse } from "next/server";
import { query } from "@/lib/db";

export async function GET(
  _req: NextRequest,
  { params }: { params: Promise<{ id: string }> }
) {
  const { id } = await params;
  const numId = Number(id);
  if (!Number.isFinite(numId)) return NextResponse.json({ error: "bad id" }, { status: 400 });

  const { rows } = await query(
    `SELECT *,
            EXTRACT(YEAR FROM AGE(NOW(), expired_date))::int AS years_expired,
            (CURRENT_DATE + INTERVAL '6 months')::date AS follow_up_date
     FROM items WHERE id = $1`,
    [numId]
  );
  if (!rows.length) return NextResponse.json({ error: "not found" }, { status: 404 });
  return NextResponse.json({ item: rows[0] });
}