30 lines
925 B
TypeScript
30 lines
925 B
TypeScript
import { NextResponse } from "next/server";
|
|
import { getServiceSupabase } from "@/lib/supabase/client";
|
|
|
|
type UserDirectoryRow = {
|
|
id: string;
|
|
name: string | null;
|
|
avatar_url: string | null;
|
|
};
|
|
|
|
export async function GET() {
|
|
try {
|
|
const supabase = getServiceSupabase();
|
|
const { data, error } = await supabase
|
|
.from("users")
|
|
.select("id, name, avatar_url")
|
|
.order("name", { ascending: true });
|
|
|
|
if (error) {
|
|
console.error("[users/directory] Supabase query failed", error);
|
|
return NextResponse.json({ error: error.message }, { status: 500 });
|
|
}
|
|
|
|
return NextResponse.json({ users: (data ?? []) as UserDirectoryRow[] });
|
|
} catch (error) {
|
|
const message = error instanceof Error ? error.message : "Failed to fetch user directory";
|
|
console.error("[users/directory] Request failed", error);
|
|
return NextResponse.json({ error: message }, { status: 500 });
|
|
}
|
|
}
|