update session resource

This commit is contained in:
tuanvu
2025-10-02 14:03:25 +02:00
parent b8df2eccd8
commit 27aff73824
6 changed files with 42 additions and 16 deletions

View File

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

View File

@@ -22,6 +22,8 @@ public interface QuizzMapper {
QuizzDTO toDTO(Quizz quizz);
Quizz toEntity(QuizzDTO quizzDTO);
List<QuizzDTO> toDTOs(List<Quizz> quizzes);
default List<Integer> function_mapQ(List<Question> questionList){
List<Integer> list=new ArrayList<Integer>();
for(Question question : questionList){

View File

@@ -21,6 +21,8 @@ public interface SessionMapper {
SessionDTO toDTO(Session session);
Session toEntity(SessionDTO sessionDTO);
List<SessionDTO> toDTOs(List<Session> sessions);
//https://www.baeldung.com/mapstruct-map-source-object-target-list
default List<Integer> function_mapU(List<Utilisateur> utilisateurList) {
List<Integer> result = new ArrayList<>();

View File

@@ -14,4 +14,6 @@ public interface UtilisateurMapper {
UtilisateurDTO toDTO(Utilisateur utilisateur);
Utilisateur toEntity(UtilisateurDTO dto);
List<UtilisateurDTO> toDTOs(List<Utilisateur> utilisateurList);
}

View File

@@ -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<QuizzDTO> 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<Utilisateur> utilisateurList= session.getUtilisateurs();
List<UtilisateurDTO> dtos= UtilisateurMapper.INSTANCE.toDTOs(utilisateurList);
return Response.status(Response.Status.OK).entity(dtos).build();
}
}

View File

@@ -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<Session> 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<Session> sess= utilisateur.getSession();
List<SessionDTO> dtos= SessionMapper.INSTANCE.toDTOs(sess);
return Response.status(Response.Status.OK).entity(dtos).build();
}
@DELETE