Tested methods Utilisateur

/register
/login
/
/{id}
/register

add Session
This commit is contained in:
Vu Tuan Minh
2025-10-01 01:34:47 +02:00
parent 72ecb82a46
commit f4c990c0fb
5 changed files with 74 additions and 21 deletions

View File

@@ -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

View File

@@ -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<Integer, Utilisateur> {
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<Utilisateur> 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) {

View File

@@ -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);
}

View File

@@ -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<Session> listSession() {
List<Session> 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();
}
}

View File

@@ -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<Utilisateur> listUtilisateur() {
List<Utilisateur> 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<Utilisateur> listUtilisateur() {
List<Utilisateur> 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();
}
}