// /app/api/support/badges/route.ts import { NextRequest, NextResponse } from "next/server"; import { fetchMembershipBadges } from "@/lib/memberships"; // Replace this with your real auth lookup if/when you wire it in async function getCurrentUser(req: NextRequest): Promise<{ id?: string; email?: string } | null> { const uid = req.headers.get("x-user-id") || undefined; const email = req.headers.get("x-user-email") || undefined; return uid || email ? { id: uid, email } : null; } export async function GET(req: NextRequest) { try { const me = await getCurrentUser(req); // Accept explicit query params so the component can work without special headers const emailParam = (req.nextUrl.searchParams.get("email") || "").trim().toLowerCase() || undefined; const userIdParam = (req.nextUrl.searchParams.get("userId") || "").trim() || undefined; if (!emailParam && !userIdParam && !me?.id && !me?.email) { return NextResponse.json({ error: "Provide email or userId" }, { status: 400 }); } const badges = await fetchMembershipBadges({ userId: userIdParam || me?.id, email: emailParam || me?.email, }); return NextResponse.json({ badges }); } catch (e: any) { return NextResponse.json( { error: "badges_fetch_failed", detail: String(e?.message || e) }, { status: 500 } ); } }