From badb444de6e95141645d513d927b392ec875ca90 Mon Sep 17 00:00:00 2001 From: Cedric Date: Tue, 21 Jul 2026 16:19:54 +0200 Subject: [PATCH] Actualiser api/users.php --- api/users.php | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/api/users.php b/api/users.php index 9958d56..f351180 100644 --- a/api/users.php +++ b/api/users.php @@ -1,11 +1,8 @@ 'Méthode non autorisée'], 405); } function getAllUsers() { $db = getDB(); - $stmt = $db->query(" - SELECT u.id, u.username, u.email, u.role, u.points, u.created_at, - COUNT(p.id) as total_predictions, + SELECT u.id, u.username, u.email, u.role, u.points, u.created_at, + COUNT(p.id) as total_predictions, SUM(CASE WHEN p.is_correct = 1 THEN 1 ELSE 0 END) as correct_predictions FROM users u LEFT JOIN predictions p ON u.id = p.user_id GROUP BY u.id ORDER BY u.created_at DESC "); - $users = []; while ($row = $stmt->fetch()) { $users[] = [ @@ -55,16 +47,14 @@ function getAllUsers() { 'correct_predictions' => (int)$row['correct_predictions'] ]; } - jsonResponse(['success' => true, 'users' => $users]); } function getUser($id) { $db = getDB(); - $stmt = $db->prepare(" - SELECT u.id, u.username, u.email, u.role, u.points, u.created_at, - COUNT(p.id) as total_predictions, + SELECT u.id, u.username, u.email, u.role, u.points, u.created_at, + COUNT(p.id) as total_predictions, SUM(CASE WHEN p.is_correct = 1 THEN 1 ELSE 0 END) as correct_predictions FROM users u LEFT JOIN predictions p ON u.id = p.user_id @@ -73,65 +63,50 @@ function getUser($id) { "); $stmt->execute([$id]); $user = $stmt->fetch(); - if (!$user) { jsonResponse(['error' => 'Utilisateur non trouvé'], 404); } - jsonResponse(['success' => true, 'user' => $user]); } function updateUser($id) { $data = getJsonInput(); $db = getDB(); - $stmt = $db->prepare("SELECT id, role FROM users WHERE id = ?"); $stmt->execute([$id]); $targetUser = $stmt->fetch(); - if (!$targetUser) { jsonResponse(['error' => 'Utilisateur non trouvé'], 404); } - $fields = []; $values = []; - $allowedFields = ['role', 'points']; - foreach ($allowedFields as $field) { if (isset($data[$field])) { $fields[] = "$field = ?"; $values[] = $data[$field]; } } - if (empty($fields)) { jsonResponse(['error' => 'Aucune donnée à mettre à jour'], 400); } - $values[] = $id; $stmt = $db->prepare("UPDATE users SET " . implode(', ', $fields) . " WHERE id = ?"); $stmt->execute($values); - jsonResponse(['success' => true, 'message' => 'Utilisateur mis à jour avec succès']); } function deleteUser($id) { - $db = getDB(); - - // Empêcher la suppression de soi-même global $user; if ($user['id'] == $id) { jsonResponse(['error' => 'Vous ne pouvez pas supprimer votre propre compte'], 400); } - + $db = getDB(); $stmt = $db->prepare("DELETE FROM users WHERE id = ?"); $stmt->execute([$id]); - if ($stmt->rowCount() === 0) { jsonResponse(['error' => 'Utilisateur non trouvé'], 404); } - jsonResponse(['success' => true, 'message' => 'Utilisateur supprimé avec succès']); } ?> \ No newline at end of file