From f4c990c0fb0d94ab8f5c103b904c9821c1926508 Mon Sep 17 00:00:00 2001 From: Vu Tuan Minh Date: Wed, 1 Oct 2025 01:34:47 +0200 Subject: [PATCH] Tested methods Utilisateur /register /login / /{id} /register add Session --- README.md | 17 ++++++++- .../istic/taa/jaxrs/DAO/UtilisateurDAO.java | 18 ++++++--- .../istic/taa/jaxrs/Mapper/SessionMapper.java | 4 +- .../istic/taa/jaxrs/rest/SessionResource.java | 37 +++++++++++++++++++ .../taa/jaxrs/rest/UtilisateurResource.java | 19 ++++------ 5 files changed, 74 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 85ae4d4..ebc241f 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,24 @@ ## TP1 - TP2 ### Compte rendu -Le compte rendu pour TP1 et TP2 la partie servlet sont dans la branche tp_servlet -Le compte rendu pour TP2 la partie API Rest est dans la branche tp_rest +#### 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 | +#### Session Resource +| Methode | URL | Description | +|---------|-----------------|------------------------------------| +| GET | `/session` | Retourne toute la liste du session | +| GET | `/session/{id}` | Retourne la session par id | + ## Auteurs - Tuan Minh VU diff --git a/src/main/java/fr/istic/taa/jaxrs/DAO/UtilisateurDAO.java b/src/main/java/fr/istic/taa/jaxrs/DAO/UtilisateurDAO.java index f9319a7..8d19a0d 100644 --- a/src/main/java/fr/istic/taa/jaxrs/DAO/UtilisateurDAO.java +++ b/src/main/java/fr/istic/taa/jaxrs/DAO/UtilisateurDAO.java @@ -5,18 +5,24 @@ import jakarta.persistence.Query; import fr.istic.taa.jaxrs.metier.Session; import fr.istic.taa.jaxrs.metier.Utilisateur; +import java.util.List; + public class UtilisateurDAO extends AbstractJpaDao { public UtilisateurDAO() { super(); this.setClass(Utilisateur.class); } - public Utilisateur findByEmail(String email){ - EntityTransaction t=em.getTransaction(); - Query query=em.createQuery("select u from Utilisateur u where u.email=:email"); - query.setParameter("email",email); - Utilisateur u=(Utilisateur)query.getSingleResult(); - return u; + public Utilisateur findByEmail(String email) { + List results = + em.createQuery("SELECT u FROM Utilisateur u WHERE u.email = :email", Utilisateur.class) + .setParameter("email", email).getResultList(); + + if (results.isEmpty()) { + return null; + } else { + return results.get(0); + } } public void addToSession(int sessionId, int userId) { 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 8d3bcd5..4a412ac 100644 --- a/src/main/java/fr/istic/taa/jaxrs/Mapper/SessionMapper.java +++ b/src/main/java/fr/istic/taa/jaxrs/Mapper/SessionMapper.java @@ -2,12 +2,12 @@ package fr.istic.taa.jaxrs.Mapper; import fr.istic.taa.jaxrs.DTO.SessionDTO; import fr.istic.taa.jaxrs.metier.Session; -import fr.istic.taa.jaxrs.metier.Utilisateur; + import org.mapstruct.factory.Mappers; public interface SessionMapper { SessionMapper INSTANCE = Mappers.getMapper( SessionMapper.class ); - SessionDTO toDTO(Utilisateur utilisateur); + SessionDTO toDTO(Session utilisateur); Session toEntity(SessionDTO sessionDTO); } 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 92c1bf9..01f1f30 100644 --- a/src/main/java/fr/istic/taa/jaxrs/rest/SessionResource.java +++ b/src/main/java/fr/istic/taa/jaxrs/rest/SessionResource.java @@ -1,4 +1,41 @@ package fr.istic.taa.jaxrs.rest; + +import fr.istic.taa.jaxrs.DAO.SessionDAO; +import fr.istic.taa.jaxrs.DTO.SessionDTO; +import fr.istic.taa.jaxrs.Mapper.SessionMapper; +import fr.istic.taa.jaxrs.metier.Session; +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +@Path("session") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) public class SessionResource { + private final SessionDAO sessionDAO = new SessionDAO(); + private final SessionMapper mapper = Mappers.getMapper(SessionMapper.class); + + @GET + public List listSession() { + List sessions = sessionDAO.findAll(); + return sessions; + } + + @GET + @Path("/{id}") + public Response getSession(@PathParam("id") Integer id) { + Session session = sessionDAO.findById(id); + if (session == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + SessionDTO result = mapper.toDTO(session); + return Response.status(Response.Status.OK).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 224c658..0689144 100644 --- a/src/main/java/fr/istic/taa/jaxrs/rest/UtilisateurResource.java +++ b/src/main/java/fr/istic/taa/jaxrs/rest/UtilisateurResource.java @@ -2,11 +2,8 @@ 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.UtilisateurMapper; -import fr.istic.taa.jaxrs.metier.Quizz; -import fr.istic.taa.jaxrs.metier.Reponse; import fr.istic.taa.jaxrs.metier.Session; import fr.istic.taa.jaxrs.metier.Utilisateur; import jakarta.ws.rs.*; @@ -24,6 +21,13 @@ public class UtilisateurResource { private final UtilisateurDAO utilisateurDAO = new UtilisateurDAO(); private final UtilisateurMapper mapper = Mappers.getMapper(UtilisateurMapper.class); + @GET + public List listUtilisateur() { + List utilisateurs = utilisateurDAO.findAll(); + return utilisateurs; + } + + /* @POST public Response createUtilisateur(UtilisateurDTO dto) { Utilisateur utilisateur = mapper.toEntity(dto); @@ -33,6 +37,7 @@ public class UtilisateurResource { return Response.status(Response.Status.CREATED).entity(result).build(); } + */ @POST @Path("/register") @@ -77,12 +82,6 @@ public class UtilisateurResource { return Response.ok(result).build(); } - @GET - public List listUtilisateur() { - List utilisateurs = utilisateurDAO.findAll(); - return utilisateurs; - } - @PUT @Path("/{user_id}/session/{session_id}") public Response addSession(@PathParam("user_id") Integer user_id, @PathParam("session_id") Integer session_id) { @@ -102,7 +101,6 @@ public class UtilisateurResource { utilisateurDAO.update(utilisateur); // We update it so have to return new DTO - UtilisateurMapper mapper = Mappers.getMapper(UtilisateurMapper.class); UtilisateurDTO dto = mapper.toDTO(utilisateur); return Response.status(Response.Status.OK).entity(dto).build(); @@ -117,5 +115,4 @@ public class UtilisateurResource { } return utilisateur.getSession(); } - }