25 lines
850 B
TypeScript
25 lines
850 B
TypeScript
/**
|
|
* 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,
|
|
});
|
|
}
|