Évaluation Technique Spring Boot - Suite
Partie 1 : Service
Créer CommentService
Méthodes à implémenter :
a) createComment(UUID profileId, CreateCommentRequest request)
- Vérifier que le profil existe
- Créer le commentaire avec le statut
PENDING - Initialiser
createdAtavec la date/heure actuelle - Créer les ratings associés depuis la liste du DTO
- Sauvegarder le commentaire (qui sauvegarde aussi les ratings grâce au cascade)
- Retourner un
CommentDTO
b) getApprovedCommentsByProfile(UUID profileId)
- Récupérer tous les commentaires approuvés pour un profil
- Convertir en liste de
CommentDTO
c) moderateComment(UUID commentId, CommentStatus newStatus)
- Récupérer le commentaire
- Mettre à jour son statut
- Sauvegarder
d) Méthode utilitaire : toDTO(Comment comment)
- Convertir un Comment en CommentDTO
- Calculer le
averageScoreen faisant la moyenne des scores de tous les ratings
Partie 2 : Controller
Créer CommentController
A déclarer en tant que @RestController
Mapping de base : /api/profiles/{profileId}/comments
POST /api/profiles/{profileId}/comments
- Paramètre :
profileIddans le path - Body :
CreateCommentRequest(avec@Valid) - Appelle le service pour créer le commentaire
- Retourne le
CommentDTOcréé avec statut 201 (CREATED)
GET /api/profiles/{profileId}/comments
- Paramètre :
profileIddans le path - Appelle le service pour récupérer les commentaires approuvés
- Retourne une liste de
CommentDTOavec statut 200 (OK)
Créer CommentModerationController
Mapping de base : /api/comments
PUT /api/comments/{commentId}/moderate
- Paramètre path :
commentId - Paramètre query :
status(CommentStatus) - Appelle le service pour modérer
- Retourne statut 204 (NO_CONTENT)
Critères d'évaluation (barème /10)
| Critère | Points |
|---|---|
| Service : logique métier correcte, conversions DTO, calcul moyenne | /5 |
| Controllers : endpoints REST fonctionnels, gestion des statuts HTTP | /3 |
| Qualité du code : nommage, conventions, organisation | /2 |