Question Resource
This commit is contained in:
@@ -1,10 +1,82 @@
|
||||
package fr.istic.taa.jaxrs.DAO;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.istic.taa.jaxrs.metier.Choix;
|
||||
import fr.istic.taa.jaxrs.metier.Question;
|
||||
import fr.istic.taa.jaxrs.metier.Reponse;
|
||||
import fr.istic.taa.jaxrs.metier.ReponseCourte;
|
||||
import fr.istic.taa.jaxrs.metier.Session;
|
||||
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
||||
import jakarta.persistence.EntityTransaction;
|
||||
|
||||
public class QuestionDAO extends AbstractJpaDao<Integer, Question> {
|
||||
public QuestionDAO(){
|
||||
super();
|
||||
this.setClass(Question.class);
|
||||
}
|
||||
|
||||
|
||||
public void addReponse(String reponse, int questionId){
|
||||
EntityTransaction t = em.getTransaction();
|
||||
t.begin();
|
||||
Question q = em.find(Question.class,questionId);
|
||||
|
||||
q.getReponse().getReponses().add(reponse);
|
||||
em.merge(q);
|
||||
t.commit();
|
||||
}
|
||||
|
||||
|
||||
public void deleteReponse( int questionId) {
|
||||
EntityTransaction t = em.getTransaction();
|
||||
t.begin();
|
||||
Question q = em.find(Question.class,questionId);
|
||||
|
||||
q.getReponse().setReponses(new ArrayList<>());
|
||||
em.merge(q);
|
||||
t.commit();
|
||||
}
|
||||
|
||||
|
||||
public void setReponse(Reponse rep, Integer id) {
|
||||
EntityTransaction t = em.getTransaction();
|
||||
t.begin();
|
||||
Question q = em.find(Question.class,id);
|
||||
q.setReponse(rep);
|
||||
em.merge(q);
|
||||
t.commit();
|
||||
}
|
||||
|
||||
|
||||
public void setChoix(Integer id) {
|
||||
setReponse(new Choix(),id);
|
||||
}
|
||||
|
||||
public void setReponseCourte(Integer id) {
|
||||
setReponse(new ReponseCourte(),id);
|
||||
}
|
||||
|
||||
|
||||
public void addChoix(Integer id, String choix) {
|
||||
EntityTransaction t = em.getTransaction();
|
||||
t.begin();
|
||||
Question q = em.find(Question.class,id);
|
||||
|
||||
((Choix)q.getReponse()).getChoix().add(choix);
|
||||
em.merge(q);
|
||||
t.commit();
|
||||
}
|
||||
|
||||
|
||||
public void changeQuestion(String newQuestion, Integer id) {
|
||||
EntityTransaction t = em.getTransaction();
|
||||
t.begin();
|
||||
Question q = em.find(Question.class,id);
|
||||
q.setQuestion(newQuestion);
|
||||
em.merge(q);
|
||||
t.commit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ public class UtilisateurDAO extends AbstractJpaDao<Integer, Utilisateur> {
|
||||
//FAUT AJOUTER OWNING SIDE ( Ici u --> s)
|
||||
u.getSession().add(s);
|
||||
//Jsp il faut birectionnelle ou pas?
|
||||
s.getUtilisateurs().add(u);
|
||||
//s.getUtilisateurs().add(u);
|
||||
em.merge(u);
|
||||
t.commit();
|
||||
}
|
||||
|
||||
@@ -1,11 +1,129 @@
|
||||
package fr.istic.taa.jaxrs.rest;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import fr.istic.taa.jaxrs.DAO.QuestionDAO;
|
||||
import fr.istic.taa.jaxrs.DTO.QuestionDTO;
|
||||
import fr.istic.taa.jaxrs.Mapper.QuestionMapper;
|
||||
import fr.istic.taa.jaxrs.metier.Choix;
|
||||
import fr.istic.taa.jaxrs.metier.Question;
|
||||
import fr.istic.taa.jaxrs.metier.Reponse;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.PATCH;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.DELETE;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
|
||||
@Path("question")
|
||||
@Consumes({"application/json", "application/xml"})
|
||||
@Produces({"application/json", "application/xml"})
|
||||
public class QuestionResource {
|
||||
private final QuestionDAO questionDAO = new QuestionDAO();
|
||||
private final QuestionMapper mapper = QuestionMapper.INSTANCE;
|
||||
|
||||
@GET
|
||||
public List<Question> listQuestion(){
|
||||
List<Question> questions = questionDAO.findAll();
|
||||
return questions;
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/addQuestion")
|
||||
public Response addQuestion(QuestionDTO dto){
|
||||
Question question = mapper.toEntity(dto);
|
||||
questionDAO.create(question);
|
||||
return Response.status(Response.Status.CREATED).entity("Question ajouté avec Succès : \"" + dto.getQuestion() + "\"").build();
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/{question_id}/changeQuestion/")
|
||||
public Response changeQuestion(@PathParam("question_id") Integer id, String newQuestion){
|
||||
Question question = questionDAO.findById(id);
|
||||
if(question == null){
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
questionDAO.changeQuestion(newQuestion,id);
|
||||
return Response.status(Response.Status.CREATED).entity("Question mis à jour : " + newQuestion).build();
|
||||
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/{question_id}/getReponse/")
|
||||
public Response getReponse(@PathParam("question_id") Integer id){
|
||||
Question question = questionDAO.findById(id);
|
||||
if(question == null){
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
QuestionDTO result = mapper.toDTO(question);
|
||||
return Response.ok(result).build();
|
||||
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/{question_id}/addReponse/")
|
||||
public Response addReponse(@PathParam("question_id") Integer id, String reponse){
|
||||
Question question = questionDAO.findById(id);
|
||||
if(question == null){
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
questionDAO.addReponse(reponse,id);
|
||||
return Response.status(Response.Status.CREATED).entity("Reponse correct \""+reponse+"\" ajouté à la question " + id).build();
|
||||
|
||||
}
|
||||
|
||||
@DELETE
|
||||
@Path("/{question_id}/deletReponse/")
|
||||
public Response addReponse(@PathParam("question_id") Integer id){
|
||||
Question question = questionDAO.findById(id);
|
||||
if(question == null){
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
questionDAO.deleteReponse(id);
|
||||
return Response.status(Response.Status.CREATED).entity("Reponses supprimé de la question " + id).build();
|
||||
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/{question_id}/setReponse/choix")
|
||||
public Response setChoix(@PathParam("question_id") Integer id){
|
||||
Question question = questionDAO.findById(id);
|
||||
if(question == null){
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
questionDAO.setChoix(id);
|
||||
return Response.status(Response.Status.CREATED).entity("Reponses à choix multiple mise sur la question " + id).build();
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/{question_id}/setReponse/reponseCourte")
|
||||
public Response setReponseCourte(@PathParam("question_id") Integer id){
|
||||
Question question = questionDAO.findById(id);
|
||||
if(question == null){
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
questionDAO.setReponseCourte(id);
|
||||
return Response.status(Response.Status.CREATED).entity("Reponses courte mise sur la question " + id).build();
|
||||
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/{question_id}/AddChoix")
|
||||
public Response addChoix(@PathParam("question_id") Integer id, String choix){
|
||||
Question question = questionDAO.findById(id);
|
||||
if(question == null){
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
if(question.getReponse() instanceof Choix){
|
||||
return Response.status(Response.Status.EXPECTATION_FAILED).build();
|
||||
}
|
||||
questionDAO.addChoix(id, choix);
|
||||
return Response.status(Response.Status.CREATED).entity("Reponses courte mise sur la question " + id).build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,6 @@ public class QuizzResource {
|
||||
QuizzDTO dto = mapper.toDTO(quizz);
|
||||
return Response.status(Response.Status.OK).entity(dto).build();
|
||||
}
|
||||
|
||||
|
||||
@
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user