Tested methods Utilisateur
/register
/login
/
/{id}
This commit is contained in:
@@ -11,8 +11,6 @@ public class QuizzDAO extends AbstractJpaDao<Integer, Quizz> {
|
|||||||
|
|
||||||
public void deleteAllQuiz(){
|
public void deleteAllQuiz(){
|
||||||
EntityTransaction et= em.getTransaction();
|
EntityTransaction et= em.getTransaction();
|
||||||
et.begin();
|
|
||||||
em.createQuery("delete from Quizz").executeUpdate();
|
em.createQuery("delete from Quizz").executeUpdate();
|
||||||
et.commit();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,11 +15,9 @@ public class SessionDAO extends AbstractJpaDao<Integer, Session> {
|
|||||||
|
|
||||||
public List<Session> findByTheme(String theme){
|
public List<Session> findByTheme(String theme){
|
||||||
EntityTransaction t=em.getTransaction();
|
EntityTransaction t=em.getTransaction();
|
||||||
t.begin();
|
|
||||||
Query query=em.createQuery("select s from Session s where s.theme=:theme");
|
Query query=em.createQuery("select s from Session s where s.theme=:theme");
|
||||||
query.setParameter("theme",theme);
|
query.setParameter("theme",theme);
|
||||||
List<Session> sessions=query.getResultList();
|
List<Session> sessions=query.getResultList();
|
||||||
t.commit();
|
|
||||||
if(sessions.size()>0){
|
if(sessions.size()>0){
|
||||||
return sessions;
|
return sessions;
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@@ -13,11 +13,9 @@ public class UtilisateurDAO extends AbstractJpaDao<Integer, Utilisateur> {
|
|||||||
|
|
||||||
public Utilisateur findByEmail(String email){
|
public Utilisateur findByEmail(String email){
|
||||||
EntityTransaction t=em.getTransaction();
|
EntityTransaction t=em.getTransaction();
|
||||||
t.begin();
|
|
||||||
Query query=em.createQuery("select u from Utilisateur u where u.email=:email");
|
Query query=em.createQuery("select u from Utilisateur u where u.email=:email");
|
||||||
query.setParameter("email",email);
|
query.setParameter("email",email);
|
||||||
Utilisateur u=(Utilisateur)query.getSingleResult();
|
Utilisateur u=(Utilisateur)query.getSingleResult();
|
||||||
t.commit();
|
|
||||||
return u;
|
return u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,4 +10,5 @@ public class UtilisateurDTO {
|
|||||||
private int id;
|
private int id;
|
||||||
private String name;
|
private String name;
|
||||||
private String email;
|
private String email;
|
||||||
|
private String password;
|
||||||
}
|
}
|
||||||
|
|||||||
12
src/main/java/fr/istic/taa/jaxrs/Mapper/QuestionMapper.java
Normal file
12
src/main/java/fr/istic/taa/jaxrs/Mapper/QuestionMapper.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package fr.istic.taa.jaxrs.Mapper;
|
||||||
|
|
||||||
|
import fr.istic.taa.jaxrs.DTO.QuestionDTO;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Question;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
public interface QuestionMapper {
|
||||||
|
QuestionMapper INSTANCE = Mappers.getMapper( QuestionMapper.class );
|
||||||
|
|
||||||
|
QuestionDTO toDTO(Question question);
|
||||||
|
Question toEntity(QuestionDTO questionDTO);
|
||||||
|
}
|
||||||
12
src/main/java/fr/istic/taa/jaxrs/Mapper/QuizzMapper.java
Normal file
12
src/main/java/fr/istic/taa/jaxrs/Mapper/QuizzMapper.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package fr.istic.taa.jaxrs.Mapper;
|
||||||
|
|
||||||
|
import fr.istic.taa.jaxrs.DTO.QuizzDTO;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Quizz;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
public interface QuizzMapper {
|
||||||
|
QuizzMapper INSTANCE = Mappers.getMapper( QuizzMapper.class );
|
||||||
|
|
||||||
|
QuizzDTO toDTO(Quizz quizz);
|
||||||
|
Quizz toEntity(QuizzDTO quizzDTO);
|
||||||
|
}
|
||||||
12
src/main/java/fr/istic/taa/jaxrs/Mapper/ReponseMapper.java
Normal file
12
src/main/java/fr/istic/taa/jaxrs/Mapper/ReponseMapper.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
13
src/main/java/fr/istic/taa/jaxrs/Mapper/SessionMapper.java
Normal file
13
src/main/java/fr/istic/taa/jaxrs/Mapper/SessionMapper.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package fr.istic.taa.jaxrs.Mapper;
|
||||||
|
|
||||||
|
import fr.istic.taa.jaxrs.DTO.SessionDTO;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Session;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
public interface SessionMapper {
|
||||||
|
SessionMapper INSTANCE = Mappers.getMapper( SessionMapper.class );
|
||||||
|
|
||||||
|
SessionDTO toDTO(Utilisateur utilisateur);
|
||||||
|
Session toEntity(SessionDTO sessionDTO);
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package fr.istic.taa.jaxrs.Mapper;
|
||||||
|
|
||||||
|
import fr.istic.taa.jaxrs.DTO.UtilisateurDTO;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface UtilisateurMapper {
|
||||||
|
UtilisateurMapper INSTANCE = Mappers.getMapper(UtilisateurMapper.class);
|
||||||
|
|
||||||
|
UtilisateurDTO toDTO(Utilisateur utilisateur);
|
||||||
|
Utilisateur toEntity(UtilisateurDTO dto);
|
||||||
|
}
|
||||||
@@ -14,13 +14,9 @@ public class RestServer {
|
|||||||
private static final Logger logger = Logger.getLogger(RestServer.class.getName());
|
private static final Logger logger = Logger.getLogger(RestServer.class.getName());
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
UndertowJaxrsServer ut = new UndertowJaxrsServer();
|
UndertowJaxrsServer ut = new UndertowJaxrsServer();
|
||||||
|
|
||||||
TestApplication ta = new TestApplication();
|
TestApplication ta = new TestApplication();
|
||||||
|
|
||||||
ut.deploy(ta);
|
ut.deploy(ta);
|
||||||
|
|
||||||
ut.start(
|
ut.start(
|
||||||
Undertow.builder()
|
Undertow.builder()
|
||||||
.addHttpListener(8080, "localhost")
|
.addHttpListener(8080, "localhost")
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ package fr.istic.taa.jaxrs;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import fr.istic.taa.jaxrs.rest.PetResource;
|
import fr.istic.taa.jaxrs.rest.*;
|
||||||
import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource;
|
import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource;
|
||||||
import jakarta.ws.rs.ApplicationPath;
|
import jakarta.ws.rs.ApplicationPath;
|
||||||
import jakarta.ws.rs.core.Application;
|
import jakarta.ws.rs.core.Application;
|
||||||
@@ -35,9 +35,11 @@ public class TestApplication extends Application {
|
|||||||
|
|
||||||
clazzes.add(OpenApiResource.class);
|
clazzes.add(OpenApiResource.class);
|
||||||
clazzes.add(PetResource.class);
|
clazzes.add(PetResource.class);
|
||||||
// clazzes.add(AcceptHeaderOpenApiResource.class);
|
clazzes.add(QuestionResource.class);
|
||||||
|
clazzes.add(QuizzResource.class);
|
||||||
|
clazzes.add(ReponseResource.class);
|
||||||
|
clazzes.add(UtilisateurResource.class);
|
||||||
|
clazzes.add(SessionResource.class);
|
||||||
return clazzes;
|
return clazzes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package fr.istic.taa.jaxrs.rest;
|
||||||
|
|
||||||
|
public class QuestionResource {
|
||||||
|
}
|
||||||
4
src/main/java/fr/istic/taa/jaxrs/rest/QuizzResource.java
Normal file
4
src/main/java/fr/istic/taa/jaxrs/rest/QuizzResource.java
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
package fr.istic.taa.jaxrs.rest;
|
||||||
|
|
||||||
|
public class QuizzResource {
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package fr.istic.taa.jaxrs.rest;
|
||||||
|
|
||||||
|
public class ReponseResource {
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package fr.istic.taa.jaxrs.rest;
|
||||||
|
|
||||||
|
public class SessionResource {
|
||||||
|
}
|
||||||
121
src/main/java/fr/istic/taa/jaxrs/rest/UtilisateurResource.java
Normal file
121
src/main/java/fr/istic/taa/jaxrs/rest/UtilisateurResource.java
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
package fr.istic.taa.jaxrs.rest;
|
||||||
|
|
||||||
|
import fr.istic.taa.jaxrs.DAO.SessionDAO;
|
||||||
|
import fr.istic.taa.jaxrs.DAO.UtilisateurDAO;
|
||||||
|
import fr.istic.taa.jaxrs.DTO.SessionDTO;
|
||||||
|
import fr.istic.taa.jaxrs.DTO.UtilisateurDTO;
|
||||||
|
import fr.istic.taa.jaxrs.Mapper.UtilisateurMapper;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Quizz;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Reponse;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Session;
|
||||||
|
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
||||||
|
import jakarta.ws.rs.*;
|
||||||
|
import jakarta.ws.rs.core.MediaType;
|
||||||
|
import jakarta.ws.rs.core.Response;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Path("utilisateur")
|
||||||
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
public class UtilisateurResource {
|
||||||
|
private final UtilisateurDAO utilisateurDAO = new UtilisateurDAO();
|
||||||
|
private final UtilisateurMapper mapper = Mappers.getMapper(UtilisateurMapper.class);
|
||||||
|
|
||||||
|
@POST
|
||||||
|
public Response createUtilisateur(UtilisateurDTO dto) {
|
||||||
|
Utilisateur utilisateur = mapper.toEntity(dto);
|
||||||
|
utilisateurDAO.create(utilisateur);
|
||||||
|
|
||||||
|
UtilisateurDTO result = mapper.toDTO(utilisateur);
|
||||||
|
return Response.status(Response.Status.CREATED).entity(result).build();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/register")
|
||||||
|
public Response registerUtilisateur(UtilisateurDTO dto) {
|
||||||
|
String email_verification = dto.getEmail();
|
||||||
|
Utilisateur existing = utilisateurDAO.findByEmail(email_verification);
|
||||||
|
|
||||||
|
//VERIFACTION S'IL EXISTE DANS BDD
|
||||||
|
if (existing != null) {
|
||||||
|
return Response.status(Response.Status.CONFLICT).entity("Email est déjà registré").build();
|
||||||
|
}
|
||||||
|
|
||||||
|
Utilisateur utilisateur = mapper.toEntity(dto);
|
||||||
|
utilisateurDAO.create(utilisateur);
|
||||||
|
|
||||||
|
return Response.status(Response.Status.CREATED).entity("Registration succès").build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/login")
|
||||||
|
public Response loginUtilisateur(UtilisateurDTO dto) {
|
||||||
|
Utilisateur utilisateur = utilisateurDAO.findByEmail(dto.getEmail());
|
||||||
|
|
||||||
|
if (utilisateur == null) {
|
||||||
|
return Response.status(Response.Status.NOT_FOUND).entity("Email n'existe pas").build();
|
||||||
|
} else if (!utilisateur.getPassword().equals(dto.getPassword())) {
|
||||||
|
return Response.status(Response.Status.UNAUTHORIZED).entity("Mauvais mdp").build();
|
||||||
|
}
|
||||||
|
UtilisateurDTO result = mapper.toDTO(utilisateur);
|
||||||
|
|
||||||
|
return Response.status(Response.Status.OK).entity(result).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/{id}")
|
||||||
|
public Response getUtilisateur(@PathParam("id") Integer id) {
|
||||||
|
Utilisateur utilisateur = utilisateurDAO.findById(id);
|
||||||
|
if (utilisateur == null) {
|
||||||
|
return Response.status(Response.Status.NOT_FOUND).build();
|
||||||
|
}
|
||||||
|
UtilisateurDTO result = mapper.toDTO(utilisateur);
|
||||||
|
return Response.ok(result).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
public List<Utilisateur> listUtilisateur() {
|
||||||
|
List<Utilisateur> utilisateurs = utilisateurDAO.findAll();
|
||||||
|
return utilisateurs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PUT
|
||||||
|
@Path("/{user_id}/session/{session_id}")
|
||||||
|
public Response addSession(@PathParam("user_id") Integer user_id, @PathParam("session_id") Integer session_id) {
|
||||||
|
SessionDAO sessionDAO = new SessionDAO();
|
||||||
|
|
||||||
|
Session existingSession = sessionDAO.findById(session_id);
|
||||||
|
Utilisateur utilisateur = utilisateurDAO.findById(user_id);
|
||||||
|
|
||||||
|
if (existingSession == null || utilisateur == null) {
|
||||||
|
return Response.status(Response.Status.NOT_FOUND).build();
|
||||||
|
}
|
||||||
|
//If user already joined
|
||||||
|
if (utilisateur.getSession().contains(existingSession)) {
|
||||||
|
return Response.status(Response.Status.CONFLICT).build();
|
||||||
|
}
|
||||||
|
utilisateur.getSession().add(existingSession);
|
||||||
|
utilisateurDAO.update(utilisateur);
|
||||||
|
|
||||||
|
// We update it so have to return new DTO
|
||||||
|
UtilisateurMapper mapper = Mappers.getMapper(UtilisateurMapper.class);
|
||||||
|
UtilisateurDTO dto = mapper.toDTO(utilisateur);
|
||||||
|
|
||||||
|
return Response.status(Response.Status.OK).entity(dto).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("{user_id}/session")
|
||||||
|
public List<Session> listSession(@PathParam("user_id") Integer user_id) {
|
||||||
|
Utilisateur utilisateur = utilisateurDAO.findById(user_id);
|
||||||
|
if (utilisateur == null) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
return utilisateur.getSession();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user