Gestion des Personnes & Filtres - 0x485254/brief-26 GitHub Wiki

🙍‍♀️ Gestion des Personnes – Azriel

📁 Arborescence & Fichiers existants


backend/
└── src/
    ├── main/
    │   ├── java/com/easygroup/
    │   │   ├── controller/
    │   │   │   └── PersonController.java
    │   │   ├── service/
    │   │   │   └── PersonService.java
    │   │   ├── repository/
    │   │   │   └── PersonRepository.java
    │   │   ├── entity/
    │   │   │   └── Person.java
    │   │   └── dto/
    │   │       ├── PersonRequest.java
    │   │       └── PersonResponse.java
    └── test/
        └── java/com/easygroup/
            └── PersonControllerTests.java

📌 Fichiers & responsabilités globales

PersonController.java

Expose les endpoints REST pour la gestion CRUD des personnes dans les listes d'apprenants.

PersonService.java

Logique métier pour la création, modification, suppression et recherche de personnes avec validation des données.

PersonRepository.java

Accès aux données des personnes avec requêtes spécialisées pour les listes et le tri.

Person.java

Entité représentant un apprenant avec ses caractéristiques (âge, niveau, profil, etc.).

PersonRequest.java

DTO pour les données d'entrée lors de la création/modification d'une personne avec validation.

PersonResponse.java

DTO pour les données de sortie lors de la consultation des personnes.

PersonControllerTests.java

Tests unitaires et d'intégration pour valider le comportement du contrôleur avec authentification.


🔧 Méthodes détaillées

PersonController

Méthode Endpoint Rôle
addPersonToList(UUID userId, UUID listId, PersonRequest request) POST /users/{userId}/lists/{listId}/persons Ajoute une nouvelle personne à une liste
getPersonsByList(UUID userId, UUID listId) GET /users/{userId}/lists/{listId}/persons Récupère toutes les personnes d'une liste triées par nom
editPerson(UUID userId, UUID listId, UUID personId, PersonRequest request) PUT /users/{userId}/lists/{listId}/persons/{personId} Modifie les caractéristiques d'une personne
deletePerson(UUID userId, UUID listId, UUID personId) DELETE /users/{userId}/lists/{listId}/persons/{personId} Supprime une personne de la liste

PersonService

Méthode Rôle
save(Integer age, Integer frenchLevel, Person.Gender gender, String name, Boolean oldDWWM, Person.Profile profile, Integer techLevel, UUID listId) Crée et sauvegarde une nouvelle personne dans une liste
findByListIdOrderByName(UUID listId) Trouve toutes les personnes d'une liste triées alphabétiquement
edit(UUID id, Integer age, Integer frenchLevel, Person.Gender gender, String name, Boolean oldDWWM, Person.Profile profile, Integer techLevel) Met à jour les informations d'une personne existante
deleteById(UUID id) Supprime une personne par son identifiant
countByList(ListEntity list) Compte le nombre de personnes dans une liste
deleteByList(ListEntity list) Supprime toutes les personnes d'une liste

PersonRepository

Méthode Rôle
findByList(ListEntity list) Trouve toutes les personnes appartenant à une liste
findByListOrderByNameAsc(ListEntity list) Trouve les personnes d'une liste triées par nom croissant
countByList(ListEntity list)