diff --git a/README.md b/README.md index c919e84..9ce86b8 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,15 @@ ### Compte rendu #### Utilisateur Resource -| Methode | URL | Description | -|---------|----------------------------------------------|-------------------------------------------------------| -| GET | `/utilisateur` | Retourne toute la liste de l'utilisateur | -| POST | `/utilisateur/register` | S'incrire nouveaux utilisateur | -| POST | `/utilisateur/login` | Se connecter | -| GET | `/utilisateur/{id}` | Retourne l'utilisateur par id | -| GET | `/utilisateur/{user_id}/session` | Retoune la liste de session que l'utilisateur attends | -| PUT | `/utilisateur/{user_id}/session/{session_id}` | Ajoute un nouveau session à la liste de l'utilisateur | -| DELETE | `{user_id}/delete` | Supprime utilisateur | +| Methode | URL | Description | +|---------|---------------------------------------------------|-------------------------------------------------------| +| GET | `/utilisateur` | Retourne toute la liste de l'utilisateur | +| POST | `/utilisateur/register` | S'incrire nouveaux utilisateur | +| POST | `/utilisateur/login` | Se connecter | +| GET | `/utilisateur/{id}` | Retourne l'utilisateur par id | +| GET | `/utilisateur/{user_id}/session` | Retoune la liste de session que l'utilisateur attends | +| PUT | `/utilisateur/{user_id}/add_session/{session_id}` | Ajoute un nouveau session à la liste de l'utilisateur | +| DELETE | `{user_id}/delete` | Supprime utilisateur | #### Session Resource | Methode | URL | Description | diff --git a/src/main/java/fr/istic/taa/jaxrs/Mapper/QuizzMapper.java b/src/main/java/fr/istic/taa/jaxrs/Mapper/QuizzMapper.java index 7043082..8ac65da 100644 --- a/src/main/java/fr/istic/taa/jaxrs/Mapper/QuizzMapper.java +++ b/src/main/java/fr/istic/taa/jaxrs/Mapper/QuizzMapper.java @@ -22,6 +22,8 @@ public interface QuizzMapper { QuizzDTO toDTO(Quizz quizz); Quizz toEntity(QuizzDTO quizzDTO); + List toDTOs(List quizzes); + default List function_mapQ(List questionList){ List list=new ArrayList(); for(Question question : questionList){ diff --git a/src/main/java/fr/istic/taa/jaxrs/Mapper/SessionMapper.java b/src/main/java/fr/istic/taa/jaxrs/Mapper/SessionMapper.java index a31d023..573a1ad 100644 --- a/src/main/java/fr/istic/taa/jaxrs/Mapper/SessionMapper.java +++ b/src/main/java/fr/istic/taa/jaxrs/Mapper/SessionMapper.java @@ -21,6 +21,8 @@ public interface SessionMapper { SessionDTO toDTO(Session session); Session toEntity(SessionDTO sessionDTO); + List toDTOs(List sessions); + //https://www.baeldung.com/mapstruct-map-source-object-target-list default List function_mapU(List utilisateurList) { List result = new ArrayList<>(); diff --git a/src/main/java/fr/istic/taa/jaxrs/Mapper/UtilisateurMapper.java b/src/main/java/fr/istic/taa/jaxrs/Mapper/UtilisateurMapper.java index a0e148d..6ef30f8 100644 --- a/src/main/java/fr/istic/taa/jaxrs/Mapper/UtilisateurMapper.java +++ b/src/main/java/fr/istic/taa/jaxrs/Mapper/UtilisateurMapper.java @@ -14,4 +14,6 @@ public interface UtilisateurMapper { UtilisateurDTO toDTO(Utilisateur utilisateur); Utilisateur toEntity(UtilisateurDTO dto); + + List toDTOs(List utilisateurList); } diff --git a/src/main/java/fr/istic/taa/jaxrs/rest/SessionResource.java b/src/main/java/fr/istic/taa/jaxrs/rest/SessionResource.java index 377a0b7..7f98afb 100644 --- a/src/main/java/fr/istic/taa/jaxrs/rest/SessionResource.java +++ b/src/main/java/fr/istic/taa/jaxrs/rest/SessionResource.java @@ -2,11 +2,14 @@ package fr.istic.taa.jaxrs.rest; import fr.istic.taa.jaxrs.DAO.SessionDAO; +import fr.istic.taa.jaxrs.DTO.QuizzDTO; import fr.istic.taa.jaxrs.DTO.SessionDTO; +import fr.istic.taa.jaxrs.DTO.UtilisateurDTO; +import fr.istic.taa.jaxrs.Mapper.QuizzMapper; import fr.istic.taa.jaxrs.Mapper.SessionMapper; -import fr.istic.taa.jaxrs.metier.Quizz; -import fr.istic.taa.jaxrs.metier.Reponse; +import fr.istic.taa.jaxrs.Mapper.UtilisateurMapper; import fr.istic.taa.jaxrs.metier.Session; +import fr.istic.taa.jaxrs.metier.Utilisateur; import jakarta.ws.rs.*; import jakarta.ws.rs.core.Response; @@ -44,6 +47,19 @@ public class SessionResource { if (session == null) { return Response.status(Response.Status.NOT_FOUND).build(); } - return Response.status(Response.Status.OK).entity(session.getQuizzs()).build(); + List results= QuizzMapper.INSTANCE.toDTOs(session.getQuizzs()); + return Response.status(Response.Status.OK).entity(results).build(); + } + + @GET + @Path("/{session_id}/utilisateurs") + public Response getUtilisateurs(@PathParam("session_id") Integer sessionId) { + Session session = sessionDAO.findById(sessionId); + if (session == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + List utilisateurList= session.getUtilisateurs(); + List dtos= UtilisateurMapper.INSTANCE.toDTOs(utilisateurList); + return Response.status(Response.Status.OK).entity(dtos).build(); } } diff --git a/src/main/java/fr/istic/taa/jaxrs/rest/UtilisateurResource.java b/src/main/java/fr/istic/taa/jaxrs/rest/UtilisateurResource.java index 4d19f8f..076b1c1 100644 --- a/src/main/java/fr/istic/taa/jaxrs/rest/UtilisateurResource.java +++ b/src/main/java/fr/istic/taa/jaxrs/rest/UtilisateurResource.java @@ -2,7 +2,9 @@ package fr.istic.taa.jaxrs.rest; import fr.istic.taa.jaxrs.DAO.SessionDAO; import fr.istic.taa.jaxrs.DAO.UtilisateurDAO; +import fr.istic.taa.jaxrs.DTO.SessionDTO; import fr.istic.taa.jaxrs.DTO.UtilisateurDTO; +import fr.istic.taa.jaxrs.Mapper.SessionMapper; import fr.istic.taa.jaxrs.Mapper.UtilisateurMapper; import fr.istic.taa.jaxrs.metier.Session; import fr.istic.taa.jaxrs.metier.Utilisateur; @@ -82,7 +84,7 @@ public class UtilisateurResource { } @PUT - @Path("/{user_id}/session/{session_id}") + @Path("/{user_id}/add_session/{session_id}") public Response addSession(@PathParam("user_id") Integer user_id, @PathParam("session_id") Integer session_id) { SessionDAO sessionDAO = new SessionDAO(); @@ -107,12 +109,14 @@ public class UtilisateurResource { @GET @Path("{user_id}/session") - public List listSession(@PathParam("user_id") Integer user_id) { + public Response listSession(@PathParam("user_id") Integer user_id) { Utilisateur utilisateur = utilisateurDAO.findById(user_id); if (utilisateur == null) { - return Collections.emptyList(); + return Response.status(Response.Status.NOT_FOUND).build(); } - return utilisateur.getSession(); + List sess= utilisateur.getSession(); + List dtos= SessionMapper.INSTANCE.toDTOs(sess); + return Response.status(Response.Status.OK).entity(dtos).build(); } @DELETE