push quizz

This commit is contained in:
tuanvu
2025-10-02 15:45:01 +02:00
parent d79f4f4b8f
commit de18627c30
4 changed files with 81 additions and 15 deletions

View File

@@ -10,25 +10,29 @@
|---------|---------------------------------------------------|-------------------------------------------------------|
| GET | `/utilisateur` | Retourne toute la liste de l'utilisateur |
| POST | `/utilisateur/register` | S'incrire nouveaux utilisateur |
| POST | `/utilisateur/login` | Se connecter |
| GET | `/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 l'utilisateur |
| DELETE | `/utilisteur/{user_id}/delete` | Supprime l'utilisateur |
#### Session Resource
| Methode | URL | Description |
|----------|------------------------------|------------------------------------|
| GET | `/session` | Retourne toute la liste du session |
| GET | `/session/{id}` | Retourne la session par id |
| GET | `/{session_id}/quizzs` | Retourne la liste de quizzs |
| GET | `/{session_id}/utilisateurs` | Retourne la liste de l'utilisateur |
| DELETE | `/{session_id}/delete` | Supprime la session |
| Methode | URL | Description |
|---------|--------------------------------------|------------------------------------|
| GET | `/session` | Retourne toute la liste du session |
| GET | `/session/{id}` | Retourne la session par id |
| GET | `/session/{session_id}/quizzs` | Retourne la liste de quizzs |
| GET | `/session/{session_id}/utilisateurs` | Retourne la liste de l'utilisateur |
| DELETE | `/session/{session_id}/delete` | Supprime la session |
#### Quizz Resource
| Methode | URL | Description |
|----------|----------|----------------------------------|
| GET | `/quizz` | Retourne toute la liste du quizz |
| Methode | URL | Description |
|---------|------------------------------------------------|----------------------------------------|
| GET | `/quizz` | Retourne toute la liste du quizz |
| GET | `/quizz/{quizz_id}/add_question/{question_id}` | Ajoute une nouvuelle question au quizz |
| DELETE | `/quizz/{quizz_id}/delete` | Suprrime le quizz |
| PUT | `/quizz/{quizz_id}/deleteQ` | Supprime toute les questions de quizz |
#### Question Resource

View File

@@ -1,5 +1,6 @@
package fr.istic.taa.jaxrs.DAO;
import fr.istic.taa.jaxrs.metier.Question;
import jakarta.persistence.EntityTransaction;
import fr.istic.taa.jaxrs.metier.Quizz;
@@ -9,8 +10,23 @@ public class QuizzDAO extends AbstractJpaDao<Integer, Quizz> {
this.setClass(Quizz.class);
}
public void deleteAllQuiz(){
public void deleteAllQustion(int quizz_id){
EntityTransaction et= em.getTransaction();
em.createQuery("delete from Quizz").executeUpdate();
et.begin();
Quizz quizz = em.find(Quizz.class, quizz_id);
quizz.getQuestions().clear();
em.merge(quizz);
et.commit();
}
public void addQuestion(int quizz_id, int question_id){
EntityTransaction et= em.getTransaction();
et.begin();
Quizz quizz = em.find(Quizz.class, quizz_id);
Question question =em.find(Question.class, question_id);
quizz.getQuestions().add(question);
em.merge(quizz);
et.commit();
}
}

View File

@@ -20,6 +20,8 @@ public interface QuestionMapper {
Question toEntity(QuestionDTO questionDTO);
List<QuestionDTO> toDTOs(List<Question> questionList);
default List<String> question_ReponseString(Reponse reponse){
return reponse.getReponses();
}

View File

@@ -1,18 +1,25 @@
package fr.istic.taa.jaxrs.rest;
import fr.istic.taa.jaxrs.DAO.QuestionDAO;
import fr.istic.taa.jaxrs.DAO.QuizzDAO;
import fr.istic.taa.jaxrs.DTO.QuestionDTO;
import fr.istic.taa.jaxrs.DTO.QuizzDTO;
import fr.istic.taa.jaxrs.Mapper.QuestionMapper;
import fr.istic.taa.jaxrs.Mapper.QuizzMapper;
import fr.istic.taa.jaxrs.metier.Question;
import fr.istic.taa.jaxrs.metier.Quizz;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.Response;
import java.util.List;
@Path("quizz")
@Consumes({"application/json", "application/xml"})
@Produces({"application/json", "application/xml"})
public class QuizzResource {
public final QuizzMapper mapper = QuizzMapper.INSTANCE;
public final QuizzDAO quizzDAO= new QuizzDAO();
public final QuestionDAO questionDAO = new QuestionDAO();
@GET
@Path("/{quizz_id}")
@@ -25,5 +32,42 @@ public class QuizzResource {
return Response.status(Response.Status.OK).entity(dto).build();
}
@
@GET
@Path("/{quizz_id}/questions")
public Response getQuestions(@PathParam("quizz_id") Integer quizzId) {
Quizz quizz = quizzDAO.findById(quizzId);
if (quizz == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}
List<Question> questionList= quizz.getQuestions();
List<QuestionDTO> dtos = QuestionMapper.INSTANCE.toDTOs(questionList);
return Response.status(Response.Status.OK).entity(dtos).build();
}
@PUT
@Path("/{quizz_id}/add_question/{question_id}")
public Response addQuestion(@PathParam("quizz_id") Integer quizzId, @PathParam("question_id") Integer questionId) {
Quizz quizz = quizzDAO.findById(quizzId);
Question question = questionDAO.findById(questionId);
if (quizz == null || question == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}
quizzDAO.addQuestion(quizzId,questionId);
quizzDAO.update(quizz);
QuizzDTO quizzDTO = mapper.toDTO(quizz);
return Response.status(Response.Status.OK).entity(quizzDTO).build();
}
@PUT
@Path("/{quizz_id}/deleteQ")
public Response deleteQuestion(@PathParam("quizz_id") Integer quizzId) {
Quizz quizz = quizzDAO.findById(quizzId);
if (quizz == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}
quizzDAO.deleteAllQustion(quizzId);
quizzDAO.update(quizz);
return Response.status(Response.Status.OK).build();
}
}