import { NextResponse } from "next/server";

export async function POST(request: Request) {
  const { email } = await request.json();

  if (!email) {
    return NextResponse.json({ error: "Email is required" }, { status: 400 });
  }

  try {
    const response = await fetch(`https://${process.env.INFOBIP_BASE_URL}/people/2/persons`, {
      method: "POST",
      headers: {
        "Authorization": `App ${process.env.INFOBIP_API_KEY}`,
        "Content-Type": "application/json",
        "Accept": "application/json",
      },
      body: JSON.stringify({
        contactInformation: {
          email: [{ address: email }],
        },
        // Optional: Add a tag to identify newsletter subscribers
        tags: ["Newsletter"],
      }),
    });

   // Preberemo JSON odgovor v vsakem primeru, da vidimo podrobnosti
    const data = await response.json();

    if (!response.ok) {
      // Vrnemo specifično sporočilo napake uporabniku
      return NextResponse.json(
        { error: data.requestError?.serviceException?.text || data.errorMessage },
        { status: response.status }
      );
    }

    return NextResponse.json({ message: "Success", data });
  } catch (error: any) {
    console.error("Server Error:", error);
    return NextResponse.json(
      { error: error.message || "Internal Server Error" },
      { status: 500 }
    );
  }
}