import { NextRequest, NextResponse } from "next/server"; import { authenticateAPIRequest } from "@/app/lib/api-auth"; import { isAdmin } from "@/app/lib/permissions"; import { db } from "@/db"; import { user } from "@/db/schema"; import { desc } from "drizzle-orm"; /** * GET /api/v1/admin/users * Tüm kullanıcıları listele (Sadece admin) */ export async function GET(request: NextRequest) { const auth = await authenticateAPIRequest(request); if (!auth.authenticated) { return NextResponse.json({ error: auth.error }, { status: 401 }); } // Admin kontrolü if (!isAdmin(auth.role!)) { return NextResponse.json( { error: "Bu işlem için yetkiniz yok. Sadece adminler kullanıcıları görüntüleyebilir." }, { status: 403 } ); } try { const users = await db .select({ id: user.id, name: user.name, email: user.email, role: user.role, emailVerified: user.emailVerified, createdAt: user.createdAt, }) .from(user) .orderBy(desc(user.createdAt)); return NextResponse.json({ success: true, data: { users, total: users.length, }, }); } catch (error: any) { console.error("Kullanıcı listesi hatası:", error); return NextResponse.json( { error: "Kullanıcılar yüklenemedi" }, { status: 500 } ); } }