Question Resource
This commit is contained in:
@@ -1,10 +1,82 @@
|
|||||||
package fr.istic.taa.jaxrs.DAO;
|
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.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 class QuestionDAO extends AbstractJpaDao<Integer, Question> {
|
||||||
public QuestionDAO(){
|
public QuestionDAO(){
|
||||||
super();
|
super();
|
||||||
this.setClass(Question.class);
|
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)
|
//FAUT AJOUTER OWNING SIDE ( Ici u --> s)
|
||||||
u.getSession().add(s);
|
u.getSession().add(s);
|
||||||
//Jsp il faut birectionnelle ou pas?
|
//Jsp il faut birectionnelle ou pas?
|
||||||
s.getUtilisateurs().add(u);
|
//s.getUtilisateurs().add(u);
|
||||||
em.merge(u);
|
em.merge(u);
|
||||||
t.commit();
|
t.commit();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,129 @@
|
|||||||
package fr.istic.taa.jaxrs.rest;
|
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.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.Path;
|
||||||
|
import jakarta.ws.rs.PathParam;
|
||||||
import jakarta.ws.rs.Produces;
|
import jakarta.ws.rs.Produces;
|
||||||
|
import jakarta.ws.rs.core.Response;
|
||||||
|
|
||||||
|
|
||||||
@Path("question")
|
@Path("question")
|
||||||
@Consumes({"application/json", "application/xml"})
|
@Consumes({"application/json", "application/xml"})
|
||||||
@Produces({"application/json", "application/xml"})
|
@Produces({"application/json", "application/xml"})
|
||||||
public class QuestionResource {
|
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();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user