FIX XML
ADD MAPPING
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
|---------|-----------------|------------------------------------|
|
||||
| GET | `/session` | Retourne toute la liste du session |
|
||||
| GET | `/session/{id}` | Retourne la session par id |
|
||||
|GET |
|
||||
|
||||
## Auteurs
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package fr.istic.taa.jaxrs.DAO;
|
||||
|
||||
import jakarta.persistence.EntityTransaction;
|
||||
import jakarta.persistence.Query;
|
||||
import fr.istic.taa.jaxrs.metier.Session;
|
||||
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
||||
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
package fr.istic.taa.jaxrs.DTO;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@XmlRootElement
|
||||
public class QuestionDTO {
|
||||
private int id;
|
||||
private String question;
|
||||
private String reponse;
|
||||
private List<String> reponses_string;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
package fr.istic.taa.jaxrs.DTO;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
|
||||
@XmlRootElement
|
||||
public class QuizzDTO {
|
||||
private int id;
|
||||
|
||||
private Integer sessionId;
|
||||
private Integer utilisateurId;
|
||||
private List<Integer> questionsId;
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
package fr.istic.taa.jaxrs.DTO;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
|
||||
public class ReponseDTO {
|
||||
}
|
||||
@@ -1,10 +1,17 @@
|
||||
package fr.istic.taa.jaxrs.DTO;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
|
||||
@XmlRootElement
|
||||
public class SessionDTO {
|
||||
private String theme;
|
||||
private int codePIN;
|
||||
private int id;
|
||||
|
||||
private List<Integer> quizzsId;
|
||||
private List<Integer> utilisateursId;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package fr.istic.taa.jaxrs.DTO;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
|
||||
@XmlRootElement
|
||||
public class UtilisateurDTO {
|
||||
private int id;
|
||||
private String name;
|
||||
|
||||
@@ -2,11 +2,25 @@ package fr.istic.taa.jaxrs.Mapper;
|
||||
|
||||
import fr.istic.taa.jaxrs.DTO.QuestionDTO;
|
||||
import fr.istic.taa.jaxrs.metier.Question;
|
||||
import fr.istic.taa.jaxrs.metier.Reponse;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface QuestionMapper {
|
||||
QuestionMapper INSTANCE = Mappers.getMapper( QuestionMapper.class );
|
||||
|
||||
|
||||
@Mapping(target = "reponses_string", expression = "java(question_ReponseString(question.getReponse()))")
|
||||
QuestionDTO toDTO(Question question);
|
||||
|
||||
Question toEntity(QuestionDTO questionDTO);
|
||||
|
||||
default List<String> question_ReponseString(Reponse reponse){
|
||||
return reponse.getReponses();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,32 @@
|
||||
package fr.istic.taa.jaxrs.Mapper;
|
||||
|
||||
import fr.istic.taa.jaxrs.DTO.QuizzDTO;
|
||||
import fr.istic.taa.jaxrs.metier.Question;
|
||||
import fr.istic.taa.jaxrs.metier.Quizz;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface QuizzMapper {
|
||||
QuizzMapper INSTANCE = Mappers.getMapper( QuizzMapper.class );
|
||||
|
||||
//https://www.baeldung.com/mapstruct-map-source-object-target-list
|
||||
//https://mapstruct.org/
|
||||
@Mapping(target="sessionId", source="session.id")
|
||||
@Mapping(target="utilisateurId", source = "utilisateur.id")
|
||||
@Mapping(target="questionsId",expression="java(function_mapQ(quizz.getQuestions()))")
|
||||
QuizzDTO toDTO(Quizz quizz);
|
||||
Quizz toEntity(QuizzDTO quizzDTO);
|
||||
|
||||
default List<Integer> function_mapQ(List<Question> questionList){
|
||||
List<Integer> list=new ArrayList<Integer>();
|
||||
for(Question question : questionList){
|
||||
list.add(question.getId());
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
package fr.istic.taa.jaxrs.Mapper;
|
||||
|
||||
import fr.istic.taa.jaxrs.DTO.ReponseDTO;
|
||||
import fr.istic.taa.jaxrs.metier.Reponse;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
public interface ReponseMapper {
|
||||
ReponseMapper INSTANCE = Mappers.getMapper( ReponseMapper.class );
|
||||
|
||||
Reponse toEntity(ReponseDTO reponseDTO);
|
||||
ReponseDTO toDTO(Reponse reponse);
|
||||
}
|
||||
@@ -1,13 +1,40 @@
|
||||
package fr.istic.taa.jaxrs.Mapper;
|
||||
|
||||
import fr.istic.taa.jaxrs.DTO.SessionDTO;
|
||||
import fr.istic.taa.jaxrs.metier.Quizz;
|
||||
import fr.istic.taa.jaxrs.metier.Session;
|
||||
|
||||
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface SessionMapper {
|
||||
SessionMapper INSTANCE = Mappers.getMapper( SessionMapper.class );
|
||||
|
||||
SessionDTO toDTO(Session utilisateur);
|
||||
@Mapping(target="utilisateursId",expression="java(function_mapU(session.getUtilisateurs()))")
|
||||
@Mapping(target="quizzsId",expression="java(function_mapQ(session.getQuizzs()))")
|
||||
SessionDTO toDTO(Session session);
|
||||
Session toEntity(SessionDTO sessionDTO);
|
||||
|
||||
//https://www.baeldung.com/mapstruct-map-source-object-target-list
|
||||
default List<Integer> function_mapU(List<Utilisateur> utilisateurList) {
|
||||
List<Integer> result = new ArrayList<>();
|
||||
for (Utilisateur utilisateur : utilisateurList) {
|
||||
result.add(utilisateur.getId());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
default List<Integer> function_mapQ(List<Quizz> quizzList) {
|
||||
List<Integer> result = new ArrayList<>();
|
||||
for (Quizz quizz : quizzList) {
|
||||
result.add(quizz.getId());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,8 +27,4 @@ public class Quizz implements Serializable {
|
||||
|
||||
@OneToMany(mappedBy = "quizz")
|
||||
private List<Question> questions=new ArrayList<Question>();
|
||||
|
||||
public void addQuestion(Question question) {
|
||||
this.questions.add(question);
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,7 @@ public class Session implements Serializable {
|
||||
|
||||
@Column(unique=true)
|
||||
private int codePIN;
|
||||
|
||||
@OneToMany(mappedBy="session")
|
||||
private List<Quizz> quizzs = new ArrayList<>();
|
||||
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
package fr.istic.taa.jaxrs.rest;
|
||||
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
|
||||
@Path("question")
|
||||
@Consumes({"application/json", "application/xml"})
|
||||
@Produces({"application/json", "application/xml"})
|
||||
public class QuestionResource {
|
||||
}
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
package fr.istic.taa.jaxrs.rest;
|
||||
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
|
||||
@Path("quizz")
|
||||
@Consumes({"application/json", "application/xml"})
|
||||
@Produces({"application/json", "application/xml"})
|
||||
public class QuizzResource {
|
||||
}
|
||||
|
||||
@@ -14,11 +14,11 @@ import org.mapstruct.factory.Mappers;
|
||||
import java.util.List;
|
||||
|
||||
@Path("session")
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes({"application/json", "application/xml"})
|
||||
@Produces({"application/json", "application/xml"})
|
||||
public class SessionResource {
|
||||
private final SessionDAO sessionDAO = new SessionDAO();
|
||||
private final SessionMapper mapper = Mappers.getMapper(SessionMapper.class);
|
||||
private final SessionMapper mapper = SessionMapper.INSTANCE;
|
||||
|
||||
@GET
|
||||
public List<Session> listSession() {
|
||||
@@ -34,7 +34,7 @@ public class SessionResource {
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
SessionDTO result = mapper.toDTO(session);
|
||||
return Response.status(Response.Status.OK).build();
|
||||
return Response.status(Response.Status.OK).entity(result).build();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,12 +15,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@Path("utilisateur")
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes({"application/json", "application/xml"})
|
||||
@Produces({"application/json", "application/xml"})
|
||||
public class UtilisateurResource {
|
||||
private final UtilisateurDAO utilisateurDAO = new UtilisateurDAO();
|
||||
private final UtilisateurMapper mapper = Mappers.getMapper(UtilisateurMapper.class);
|
||||
|
||||
private final UtilisateurMapper mapper = UtilisateurMapper.INSTANCE;
|
||||
@GET
|
||||
public List<Utilisateur> listUtilisateur() {
|
||||
List<Utilisateur> utilisateurs = utilisateurDAO.findAll();
|
||||
|
||||
Reference in New Issue
Block a user