import { NextResponse } from "next/server";
import { cookies } from "next/headers";

const API_BASE_URL =
  process.env.API_BASE_URL || process.env.NEXT_PUBLIC_API_BASE_URL;

async function getAuthHeader() {
  const token = cookies().get("session_token")?.value;
  if (!token) throw new Error("Unauthorized");
  return { Authorization: `Bearer ${token}` };
}

export async function GET(req: Request) {
  try {
    const headers = await getAuthHeader();
    const url = new URL(req.url);
    const search = url.searchParams.toString();

    const upstream = `${API_BASE_URL}/api/v1/admin/beta/requests${
      search ? `?${search}` : ""
    }`;

    const res = await fetch(upstream, {
      headers,
      cache: "no-store",
    });

    if (!res.ok) {
      return NextResponse.json(
        { error: await res.text() },
        { status: res.status }
      );
    }

    return NextResponse.json(await res.json());
  } catch (err: any) {
    return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
  }
}
