FIX XML
ADD MAPPING
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
|---------|-----------------|------------------------------------|
|
|---------|-----------------|------------------------------------|
|
||||||
| GET | `/session` | Retourne toute la liste du session |
|
| GET | `/session` | Retourne toute la liste du session |
|
||||||
| GET | `/session/{id}` | Retourne la session par id |
|
| GET | `/session/{id}` | Retourne la session par id |
|
||||||
|
|GET |
|
||||||
|
|
||||||
## Auteurs
|
## Auteurs
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package fr.istic.taa.jaxrs.DAO;
|
package fr.istic.taa.jaxrs.DAO;
|
||||||
|
|
||||||
import jakarta.persistence.EntityTransaction;
|
import jakarta.persistence.EntityTransaction;
|
||||||
import jakarta.persistence.Query;
|
|
||||||
import fr.istic.taa.jaxrs.metier.Session;
|
import fr.istic.taa.jaxrs.metier.Session;
|
||||||
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,15 @@
|
|||||||
package fr.istic.taa.jaxrs.DTO;
|
package fr.istic.taa.jaxrs.DTO;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@XmlRootElement
|
||||||
public class QuestionDTO {
|
public class QuestionDTO {
|
||||||
private int id;
|
private int id;
|
||||||
private String question;
|
private String question;
|
||||||
private String reponse;
|
private List<String> reponses_string;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
package fr.istic.taa.jaxrs.DTO;
|
package fr.istic.taa.jaxrs.DTO;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@XmlRootElement
|
||||||
public class QuizzDTO {
|
public class QuizzDTO {
|
||||||
private int id;
|
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;
|
package fr.istic.taa.jaxrs.DTO;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@XmlRootElement
|
||||||
public class SessionDTO {
|
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;
|
package fr.istic.taa.jaxrs.DTO;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@XmlRootElement
|
||||||
public class UtilisateurDTO {
|
public class UtilisateurDTO {
|
||||||
private int id;
|
private int id;
|
||||||
private String name;
|
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.DTO.QuestionDTO;
|
||||||
import fr.istic.taa.jaxrs.metier.Question;
|
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 org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
public interface QuestionMapper {
|
public interface QuestionMapper {
|
||||||
QuestionMapper INSTANCE = Mappers.getMapper( QuestionMapper.class );
|
QuestionMapper INSTANCE = Mappers.getMapper( QuestionMapper.class );
|
||||||
|
|
||||||
|
|
||||||
|
@Mapping(target = "reponses_string", expression = "java(question_ReponseString(question.getReponse()))")
|
||||||
QuestionDTO toDTO(Question question);
|
QuestionDTO toDTO(Question question);
|
||||||
|
|
||||||
Question toEntity(QuestionDTO questionDTO);
|
Question toEntity(QuestionDTO questionDTO);
|
||||||
|
|
||||||
|
default List<String> question_ReponseString(Reponse reponse){
|
||||||
|
return reponse.getReponses();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,32 @@
|
|||||||
package fr.istic.taa.jaxrs.Mapper;
|
package fr.istic.taa.jaxrs.Mapper;
|
||||||
|
|
||||||
import fr.istic.taa.jaxrs.DTO.QuizzDTO;
|
import fr.istic.taa.jaxrs.DTO.QuizzDTO;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Question;
|
||||||
import fr.istic.taa.jaxrs.metier.Quizz;
|
import fr.istic.taa.jaxrs.metier.Quizz;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
public interface QuizzMapper {
|
public interface QuizzMapper {
|
||||||
QuizzMapper INSTANCE = Mappers.getMapper( QuizzMapper.class );
|
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);
|
QuizzDTO toDTO(Quizz quizz);
|
||||||
Quizz toEntity(QuizzDTO quizzDTO);
|
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;
|
package fr.istic.taa.jaxrs.Mapper;
|
||||||
|
|
||||||
import fr.istic.taa.jaxrs.DTO.SessionDTO;
|
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.Session;
|
||||||
|
|
||||||
|
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
public interface SessionMapper {
|
public interface SessionMapper {
|
||||||
SessionMapper INSTANCE = Mappers.getMapper( SessionMapper.class );
|
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);
|
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")
|
@OneToMany(mappedBy = "quizz")
|
||||||
private List<Question> questions=new ArrayList<Question>();
|
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)
|
@Column(unique=true)
|
||||||
private int codePIN;
|
private int codePIN;
|
||||||
|
|
||||||
@OneToMany(mappedBy="session")
|
@OneToMany(mappedBy="session")
|
||||||
private List<Quizz> quizzs = new ArrayList<>();
|
private List<Quizz> quizzs = new ArrayList<>();
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,12 @@
|
|||||||
package fr.istic.taa.jaxrs.rest;
|
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 {
|
public class QuestionResource {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,12 @@
|
|||||||
package fr.istic.taa.jaxrs.rest;
|
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 {
|
public class QuizzResource {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,11 +14,11 @@ import org.mapstruct.factory.Mappers;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Path("session")
|
@Path("session")
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes({"application/json", "application/xml"})
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces({"application/json", "application/xml"})
|
||||||
public class SessionResource {
|
public class SessionResource {
|
||||||
private final SessionDAO sessionDAO = new SessionDAO();
|
private final SessionDAO sessionDAO = new SessionDAO();
|
||||||
private final SessionMapper mapper = Mappers.getMapper(SessionMapper.class);
|
private final SessionMapper mapper = SessionMapper.INSTANCE;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
public List<Session> listSession() {
|
public List<Session> listSession() {
|
||||||
@@ -34,7 +34,7 @@ public class SessionResource {
|
|||||||
return Response.status(Response.Status.NOT_FOUND).build();
|
return Response.status(Response.Status.NOT_FOUND).build();
|
||||||
}
|
}
|
||||||
SessionDTO result = mapper.toDTO(session);
|
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;
|
import java.util.List;
|
||||||
|
|
||||||
@Path("utilisateur")
|
@Path("utilisateur")
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes({"application/json", "application/xml"})
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces({"application/json", "application/xml"})
|
||||||
public class UtilisateurResource {
|
public class UtilisateurResource {
|
||||||
private final UtilisateurDAO utilisateurDAO = new UtilisateurDAO();
|
private final UtilisateurDAO utilisateurDAO = new UtilisateurDAO();
|
||||||
private final UtilisateurMapper mapper = Mappers.getMapper(UtilisateurMapper.class);
|
private final UtilisateurMapper mapper = UtilisateurMapper.INSTANCE;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
public List<Utilisateur> listUtilisateur() {
|
public List<Utilisateur> listUtilisateur() {
|
||||||
List<Utilisateur> utilisateurs = utilisateurDAO.findAll();
|
List<Utilisateur> utilisateurs = utilisateurDAO.findAll();
|
||||||
|
|||||||
Reference in New Issue
Block a user