sio:bloc2:2a:td5

Évaluation Technique Spring Boot - Suite

Créer CommentService

Méthodes à implémenter :

a) createComment(UUID profileId, CreateCommentRequest request)

  1. Vérifier que le profil existe
  2. Créer le commentaire avec le statut PENDING
  3. Initialiser createdAt avec la date/heure actuelle
  4. Créer les ratings associés depuis la liste du DTO
  5. Sauvegarder le commentaire (qui sauvegarde aussi les ratings grâce au cascade)
  6. Retourner un CommentDTO

b) getApprovedCommentsByProfile(UUID profileId)

  1. Récupérer tous les commentaires approuvés pour un profil
  2. Convertir en liste de CommentDTO

c) moderateComment(UUID commentId, CommentStatus newStatus)

  1. Récupérer le commentaire
  2. Mettre à jour son statut
  3. Sauvegarder

d) Méthode utilitaire : toDTO(Comment comment)

  1. Convertir un Comment en CommentDTO
  2. Calculer le averageScore en faisant la moyenne des scores de tous les ratings

Créer CommentController

A déclarer en tant que @RestController

Mapping de base : /api/profiles/{profileId}/comments

POST /api/profiles/{profileId}/comments

  • Paramètre : profileId dans le path
  • Body : CreateCommentRequest (avec @Valid)
  • Appelle le service pour créer le commentaire
  • Retourne le CommentDTO créé avec statut 201 (CREATED)

GET /api/profiles/{profileId}/comments

  • Paramètre : profileId dans le path
  • Appelle le service pour récupérer les commentaires approuvés
  • Retourne une liste de CommentDTO avec 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è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
  • sio/bloc2/2a/td5.txt
  • Dernière modification : il y a 6 heures
  • de jcheron