correction Question
This commit is contained in:
@@ -10,6 +10,8 @@ Dans ce TP REST, nous avons implémenté les éléments suivants:
|
|||||||
- Swagger UI pour documenter et tester facilement toutes les méthodes de l’API.
|
- Swagger UI pour documenter et tester facilement toutes les méthodes de l’API.
|
||||||
- DTO (Data Transfer Objects) afin d’éviter les problèmes de boucle infinie liés aux relations bidirectionnelles entre entités.
|
- DTO (Data Transfer Objects) afin d’éviter les problèmes de boucle infinie liés aux relations bidirectionnelles entre entités.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### Execution du projet
|
#### Execution du projet
|
||||||
Recharger les dépendances Maven :
|
Recharger les dépendances Maven :
|
||||||
`mvn clean install`
|
`mvn clean install`
|
||||||
|
|||||||
@@ -9,7 +9,5 @@ import java.util.List;
|
|||||||
@XmlRootElement
|
@XmlRootElement
|
||||||
public class QuestionDTO {
|
public class QuestionDTO {
|
||||||
private int id;
|
private int id;
|
||||||
private String question;
|
private String enonce;
|
||||||
private List<String> reponses_string;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
11
src/main/java/fr/istic/taa/jaxrs/DTO/ReponseDTO.java
Normal file
11
src/main/java/fr/istic/taa/jaxrs/DTO/ReponseDTO.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package fr.istic.taa.jaxrs.DTO;
|
||||||
|
|
||||||
|
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||||
|
import lombok.Data;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@XmlRootElement
|
||||||
|
public class ReponseDTO {
|
||||||
|
public List<String> reponses;
|
||||||
|
}
|
||||||
@@ -14,7 +14,6 @@ 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);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package fr.istic.taa.jaxrs.metier;
|
package fr.istic.taa.jaxrs.metier;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
@@ -22,7 +23,7 @@ public abstract class Reponse implements Serializable {
|
|||||||
|
|
||||||
@OneToOne
|
@OneToOne
|
||||||
private Question question;
|
private Question question;
|
||||||
public List<String> reponses;
|
public List<String> reponses = new ArrayList<String>();
|
||||||
|
|
||||||
public String valHTML(){
|
public String valHTML(){
|
||||||
return "";
|
return "";
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ public class Utilisateur implements Serializable {
|
|||||||
joinColumns = @JoinColumn(name="utilisateur_id"),
|
joinColumns = @JoinColumn(name="utilisateur_id"),
|
||||||
inverseJoinColumns = @JoinColumn(name = "session_id")
|
inverseJoinColumns = @JoinColumn(name = "session_id")
|
||||||
)
|
)
|
||||||
private List<Session> sessions= new ArrayList<>();;
|
private List<Session> sessions= new ArrayList<Session>();
|
||||||
|
|
||||||
@OneToMany(mappedBy = "createur")
|
@OneToMany(mappedBy = "createur")
|
||||||
private List<Quizz> quizzs;
|
private List<Quizz> quizzs = new ArrayList<Quizz>();;
|
||||||
}
|
}
|
||||||
@@ -57,7 +57,7 @@ public class QuestionResource {
|
|||||||
@Parameter(description = "The question details to be added", required = true) QuestionDTO dto) {
|
@Parameter(description = "The question details to be added", required = true) QuestionDTO dto) {
|
||||||
Question question = mapper.toEntity(dto);
|
Question question = mapper.toEntity(dto);
|
||||||
questionDAO.create(question);
|
questionDAO.create(question);
|
||||||
return Response.status(Response.Status.CREATED).entity("Question ajouté avec Succès : \"" + dto.getQuestion() + "\"").build();
|
return Response.status(Response.Status.CREATED).entity("Question ajouté avec Succès : \"" + dto.getEnonce() + "\"").build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@PUT
|
@PUT
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
|||||||
import jakarta.ws.rs.Consumes;
|
import jakarta.ws.rs.Consumes;
|
||||||
import jakarta.ws.rs.DELETE;
|
import jakarta.ws.rs.DELETE;
|
||||||
import jakarta.ws.rs.GET;
|
import jakarta.ws.rs.GET;
|
||||||
|
import jakarta.ws.rs.POST;
|
||||||
import jakarta.ws.rs.PUT;
|
import jakarta.ws.rs.PUT;
|
||||||
import jakarta.ws.rs.Path;
|
import jakarta.ws.rs.Path;
|
||||||
import jakarta.ws.rs.PathParam;
|
import jakarta.ws.rs.PathParam;
|
||||||
@@ -34,6 +35,22 @@ public class QuizzResource {
|
|||||||
public final QuestionDAO questionDAO = new QuestionDAO();
|
public final QuestionDAO questionDAO = new QuestionDAO();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/addQuizz")
|
||||||
|
@Operation(summary = "Create a new quizz",
|
||||||
|
tags = {"Quizz"},
|
||||||
|
description = "Create a new quizz",
|
||||||
|
responses = {@ApiResponse(responseCode = "201", description = "Quizz added.")}
|
||||||
|
)
|
||||||
|
public Response addQuizz(
|
||||||
|
@Parameter(description = "The quizz details to be added", required = true) QuizzDTO dto) {
|
||||||
|
Quizz quizz = mapper.toEntity(dto);
|
||||||
|
quizzDAO.create(quizz);
|
||||||
|
return Response.status(Response.Status.CREATED).entity("Quizz ajouté avec Succès : \"" + dto.getId() + "\"").build();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Operation(summary = "List all quizz",
|
@Operation(summary = "List all quizz",
|
||||||
tags = {"Quizz"},
|
tags = {"Quizz"},
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package fr.istic.taa.jaxrs.rest;
|
package fr.istic.taa.jaxrs.rest;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import fr.istic.taa.jaxrs.DAO.SessionDAO;
|
import fr.istic.taa.jaxrs.DAO.SessionDAO;
|
||||||
import fr.istic.taa.jaxrs.DTO.QuizzDTO;
|
import fr.istic.taa.jaxrs.DTO.QuizzDTO;
|
||||||
import fr.istic.taa.jaxrs.DTO.SessionDTO;
|
import fr.istic.taa.jaxrs.DTO.SessionDTO;
|
||||||
@@ -8,6 +10,7 @@ import fr.istic.taa.jaxrs.DTO.UtilisateurDTO;
|
|||||||
import fr.istic.taa.jaxrs.Mapper.QuizzMapper;
|
import fr.istic.taa.jaxrs.Mapper.QuizzMapper;
|
||||||
import fr.istic.taa.jaxrs.Mapper.SessionMapper;
|
import fr.istic.taa.jaxrs.Mapper.SessionMapper;
|
||||||
import fr.istic.taa.jaxrs.Mapper.UtilisateurMapper;
|
import fr.istic.taa.jaxrs.Mapper.UtilisateurMapper;
|
||||||
|
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 fr.istic.taa.jaxrs.metier.Utilisateur;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@@ -16,10 +19,15 @@ import io.swagger.v3.oas.annotations.media.ArraySchema;
|
|||||||
import io.swagger.v3.oas.annotations.media.Content;
|
import io.swagger.v3.oas.annotations.media.Content;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||||
import jakarta.ws.rs.*;
|
import jakarta.ws.rs.Consumes;
|
||||||
|
import jakarta.ws.rs.DELETE;
|
||||||
|
import jakarta.ws.rs.GET;
|
||||||
|
import jakarta.ws.rs.POST;
|
||||||
|
import jakarta.ws.rs.Path;
|
||||||
|
import jakarta.ws.rs.PathParam;
|
||||||
|
import jakarta.ws.rs.Produces;
|
||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Path("session")
|
@Path("session")
|
||||||
@Consumes({"application/json", "application/xml"})
|
@Consumes({"application/json", "application/xml"})
|
||||||
@@ -28,6 +36,21 @@ public class SessionResource {
|
|||||||
private final SessionDAO sessionDAO = new SessionDAO();
|
private final SessionDAO sessionDAO = new SessionDAO();
|
||||||
private final SessionMapper mapper = SessionMapper.INSTANCE;
|
private final SessionMapper mapper = SessionMapper.INSTANCE;
|
||||||
|
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/addSession")
|
||||||
|
@Operation(summary = "Create a new session",
|
||||||
|
tags = {"Session"},
|
||||||
|
description = "Create a new session",
|
||||||
|
responses = {@ApiResponse(responseCode = "201", description = "Session added.")}
|
||||||
|
)
|
||||||
|
public Response addQuizz(
|
||||||
|
@Parameter(description = "The session details to be added", required = true) SessionDTO dto) {
|
||||||
|
Session session = mapper.toEntity(dto);
|
||||||
|
sessionDAO.create(session);
|
||||||
|
return Response.status(Response.Status.CREATED).entity("Session ajouté avec Succès : \"" + dto.getTheme() + "\"").build();
|
||||||
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Operation(summary = "List all session", tags = {"Sessions"},
|
@Operation(summary = "List all session", tags = {"Sessions"},
|
||||||
description = "Get a list of all sessions in BDD",
|
description = "Get a list of all sessions in BDD",
|
||||||
|
|||||||
Reference in New Issue
Block a user