Files
peakskills/app/api/admin/users/route.ts
2025-08-24 22:03:15 +02:00

45 lines
1.2 KiB
TypeScript

import { NextRequest, NextResponse } from "next/server";
import { getPool } from "@/services/database";
// GET - Récupérer la liste des utilisateurs
export async function GET(request: NextRequest) {
try {
const pool = getPool();
// Récupérer tous les utilisateurs avec leurs informations d'équipe et d'évaluations
const query = `
SELECT
u.uuid_id,
u.first_name,
u.last_name,
t.name as team_name,
CASE
WHEN ue.id IS NOT NULL THEN true
ELSE false
END as has_evaluations
FROM users u
LEFT JOIN teams t ON u.team_id = t.id
LEFT JOIN user_evaluations ue ON u.uuid_id = ue.user_uuid
ORDER BY u.first_name, u.last_name
`;
const result = await pool.query(query);
const users = result.rows.map((row) => ({
uuid: row.uuid_id,
firstName: row.first_name,
lastName: row.last_name,
teamName: row.team_name,
hasEvaluations: row.has_evaluations,
}));
return NextResponse.json(users);
} catch (error) {
console.error("Error fetching users:", error);
return NextResponse.json(
{ error: "Erreur lors de la récupération des utilisateurs" },
{ status: 500 }
);
}
}