76 lines
2.7 KiB
Java
76 lines
2.7 KiB
Java
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.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;
|
|
|
|
import java.util.List;
|
|
|
|
@Path("session")
|
|
@Consumes({"application/json", "application/xml"})
|
|
@Produces({"application/json", "application/xml"})
|
|
public class SessionResource {
|
|
private final SessionDAO sessionDAO = new SessionDAO();
|
|
private final SessionMapper mapper = SessionMapper.INSTANCE;
|
|
|
|
@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).entity(result).build();
|
|
}
|
|
|
|
@GET
|
|
@Path("/{session_id}/quizzs")
|
|
public Response getQuizzs(@PathParam("session_id") Integer sessionId) {
|
|
Session session = sessionDAO.findById(sessionId);
|
|
if (session == null) {
|
|
return Response.status(Response.Status.NOT_FOUND).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();
|
|
}
|
|
|
|
@DELETE
|
|
@Path("/{session_id}/delete")
|
|
public Response deleteSession(@PathParam("session_id") Integer sessionId) {
|
|
Session session = sessionDAO.findById(sessionId);
|
|
if (session == null) {
|
|
return Response.status(Response.Status.NOT_FOUND).build();
|
|
}
|
|
sessionDAO.delete(session);
|
|
return Response.status(Response.Status.OK).entity("Réussi de supprimer").build();
|
|
}
|
|
}
|