disclosure-bureau/web/app/api/me/route.ts

26 lines
850 B
TypeScript
Raw Permalink Normal View History

/**
* GET /api/me current user's profile (incl. budget tracker) or 401.
*/
import { NextResponse } from "next/server";
import { createClient, isSupabaseConfigured } from "@/lib/supabase/server";
export async function GET() {
if (!isSupabaseConfigured()) {
return NextResponse.json({ error: "auth_disabled" }, { status: 503 });
}
const supabase = await createClient();
const { data: { user } } = await supabase.auth.getUser();
if (!user) return NextResponse.json({ error: "unauthenticated" }, { status: 401 });
const { data: profile } = await supabase
.from("profiles")
.select("id, display_name, role, budget_cap_usd, total_cost_usd, daily_quota, daily_used, preferred_locale")
.eq("id", user.id)
.maybeSingle();
return NextResponse.json({
user: { id: user.id, email: user.email },
profile,
});
}