import { NextRequest, NextResponse } from "next/server"; const OPENPANEL_API_URL = process.env.OPENPANEL_API_URL || "https://op.nodecrew.me/api"; export async function POST(request: NextRequest) { try { const body = await request.text(); const headers: Record = { "Content-Type": "application/json", "openpanel-client-id": process.env.NEXT_PUBLIC_OPENPANEL_CLIENT_ID || "", }; if (process.env.OPENPANEL_CLIENT_SECRET) { headers["openpanel-client-secret"] = process.env.OPENPANEL_CLIENT_SECRET; } const response = await fetch(`${OPENPANEL_API_URL}/track`, { method: "POST", headers, body, }); const data = await response.text(); return new NextResponse(data, { status: response.status, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*", }, }); } catch (error) { console.error("[OpenPanel Proxy] Error:", error); return new NextResponse(JSON.stringify({ error: "Proxy error" }), { status: 500, }); } } export async function GET(request: NextRequest) { const url = new URL(request.url); const path = url.searchParams.get("path") || ""; try { const response = await fetch(`${OPENPANEL_API_URL}/track/${path}`, { method: "GET", headers: { "openpanel-client-id": process.env.NEXT_PUBLIC_OPENPANEL_CLIENT_ID || "", }, }); const data = await response.text(); return new NextResponse(data, { status: response.status, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*", }, }); } catch (error) { console.error("[OpenPanel Proxy] Error:", error); return new NextResponse(JSON.stringify({ error: "Proxy error" }), { status: 500, }); } }