diff --git a/pom.xml b/pom.xml
index 16a204c..8c3d555 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,7 @@
org.projectlombok
lombok
- 1.18.20
+ 1.18.42
provided
@@ -70,19 +70,29 @@
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ 3.4.0
+
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.1
+ 3.11.0
- 1.8
- 1.8
+ 11
+ 11
org.mapstruct
mapstruct-processor
${org.mapstruct.version}
+
+ org.projectlombok
+ lombok
+ 1.18.42
+
diff --git a/src/main/java/DAO/SessionDAO.java b/src/main/java/DAO/SessionDAO.java
index 8440b6c..ce5f89b 100644
--- a/src/main/java/DAO/SessionDAO.java
+++ b/src/main/java/DAO/SessionDAO.java
@@ -14,9 +14,6 @@ public class SessionDAO extends GenericDAOImpl {
this.setClass(Session.class);
}
-
-
-
public List findByTheme(String theme){
EntityTransaction t=em.getTransaction();
t.begin();
diff --git a/src/main/java/DAO/UtilisateurDAO.java b/src/main/java/DAO/UtilisateurDAO.java
index 60eba12..e1cc355 100644
--- a/src/main/java/DAO/UtilisateurDAO.java
+++ b/src/main/java/DAO/UtilisateurDAO.java
@@ -2,8 +2,11 @@ package DAO;
import jakarta.persistence.EntityTransaction;
import jakarta.persistence.Query;
+import metier.Session;
import metier.Utilisateur;
+import java.util.ArrayList;
+
public class UtilisateurDAO extends GenericDAOImpl{
public UtilisateurDAO() {
super();
@@ -29,4 +32,25 @@ public class UtilisateurDAO extends GenericDAOImpl{
t.commit();
return u;
}
+
+ public void addToSession(int sessionId, int userId) {
+ EntityTransaction t = em.getTransaction();
+ t.begin();
+ Session s = em.find(Session.class, sessionId);
+ Utilisateur u = em.find(Utilisateur.class, userId);
+
+ //ERROR NULLPOINTEREXCEPTION
+ if (u.getSession() == null) {
+ u.setSession(new ArrayList<>());
+ }
+ if (s.getUtilisateurs() == null) {
+ s.setUtilisateurs(new ArrayList<>());
+ }
+
+ //FAUT AJOUTER OWNING SIDE ( Ici u --> s)
+ u.getSession().add(s);
+ s.getUtilisateurs().add(u);
+ em.merge(u);
+ t.commit();
+ }
}
diff --git a/src/main/java/metier/Choix.java b/src/main/java/metier/Choix.java
index 7b00d01..62c7912 100644
--- a/src/main/java/metier/Choix.java
+++ b/src/main/java/metier/Choix.java
@@ -4,24 +4,18 @@ import java.util.ArrayList;
import jakarta.persistence.Entity;
import jakarta.persistence.PrimaryKeyJoinColumn;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
@Entity
+@Getter
+@Setter
+@NoArgsConstructor
@PrimaryKeyJoinColumn(name = "Choix_Id")
public class Choix extends Reponse{
ArrayList choix;
- public Choix() {
- super();
- }
-
- public ArrayList getChoix() {
- return this.choix;
- }
-
- public void setChoix(ArrayList choix) {
- this.choix = choix;
- }
-
@Override
public String valHTML(){
String res = "";
diff --git a/src/main/java/metier/Question.java b/src/main/java/metier/Question.java
index d3a085f..c57c269 100644
--- a/src/main/java/metier/Question.java
+++ b/src/main/java/metier/Question.java
@@ -1,51 +1,27 @@
package metier;
import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
import java.io.Serializable;
@Entity
+@Getter
+@Setter
+@NoArgsConstructor
public class Question implements Serializable {
- private int id;
- private String question;
- private Reponse reponse;
- private Quizz quizz;
-
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
+ private int id;
+ private String question;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name ="bonne_reponse", referencedColumnName = "id")
- public Reponse getReponse() {
- return reponse;
- }
-
- public void setReponse(Reponse reponse) {
- this.reponse = reponse;
- }
+ private Reponse reponse;
@ManyToOne
@JoinColumn(name="id_quizz")
- public Quizz getQuizz(){
- return this.quizz;
- }
-
- public void setQuizz(Quizz quizz){
- this.quizz = quizz;
- }
-
- public String getQuestion(){
- return this.question;
- }
-
- public void setQuestion(String question){
- this.question = question;
- }
-
+ private Quizz quizz;
}
diff --git a/src/main/java/metier/Quizz.java b/src/main/java/metier/Quizz.java
index f3cbc45..c0e8e68 100644
--- a/src/main/java/metier/Quizz.java
+++ b/src/main/java/metier/Quizz.java
@@ -1,57 +1,30 @@
package metier;
import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.List;
@Entity
+@Getter
+@Setter
+@NoArgsConstructor
public class Quizz implements Serializable {
- private Session session;
- private int id;
- private Utilisateur utilisateur;
- private List questions;
-
- public Quizz(){
- super();
- }
-
@Id
@GeneratedValue
- public int getId(){
- return id;
- }
-
- public void setId(Integer id){
- this.id=id;
- }
+ private int id;
@ManyToOne
- public Session getSession(){
- return session;
- }
-
- public void setSession(Session session){
- this.session=session;
- }
+ private Session session;
@ManyToOne
@JoinColumn(name="id_utilisateur")
- public Utilisateur getUtilisateur(){
- return utilisateur;
- }
-
- public void setUtilisateur(Utilisateur u){
- this.utilisateur=u;
- }
+ private Utilisateur utilisateur;
@OneToMany(mappedBy = "quizz")
- public List getQuestions(){
- return this.questions;
- }
-
-
- public void setQuestions(List questions){
- this.questions = questions;
- }
-
+ private List questions=new ArrayList();
}
\ No newline at end of file
diff --git a/src/main/java/metier/Reponse.java b/src/main/java/metier/Reponse.java
index b802b69..048c998 100644
--- a/src/main/java/metier/Reponse.java
+++ b/src/main/java/metier/Reponse.java
@@ -4,44 +4,25 @@ import java.io.Serializable;
import java.util.List;
import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
@Entity
+@Getter
+@Setter
+@NoArgsConstructor
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="Type_reponse")
@DiscriminatorValue("Reponse")
public abstract class Reponse implements Serializable {
- private int id;
- private Question question;
- public List reponses;
-
- public Reponse(){}
-
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
+ private int id;
@OneToOne
- public Question getQuestion(){
- return this.question;
- }
-
- public void setQuestion(Question question){
- this.question=question;
- }
-
- public List getReponses(){
- return this.reponses;
- }
-
- public void setReponses(List reponses){
- this.reponses=reponses;
- }
+ private Question question;
+ public List reponses;
public String valHTML(){
return "";
diff --git a/src/main/java/metier/ReponseCourte.java b/src/main/java/metier/ReponseCourte.java
index 5f3fa95..8f89772 100644
--- a/src/main/java/metier/ReponseCourte.java
+++ b/src/main/java/metier/ReponseCourte.java
@@ -2,23 +2,18 @@ package metier;
import jakarta.persistence.Entity;
import jakarta.persistence.PrimaryKeyJoinColumn;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
@Entity
+@Getter
+@Setter
+@NoArgsConstructor
@PrimaryKeyJoinColumn(name = "RC_Id")
public class ReponseCourte extends Reponse{
String value;
- public ReponseCourte(){
- super();
- }
-
- public void setValue(String value){
- this.value = value;
- }
- public String getValue(){
- return this.value;
- }
-
@Override
public String valHTML(){
return "INPUT";
diff --git a/src/main/java/metier/Session.java b/src/main/java/metier/Session.java
index 97d7a68..52b1ff1 100644
--- a/src/main/java/metier/Session.java
+++ b/src/main/java/metier/Session.java
@@ -5,54 +5,22 @@ import java.util.ArrayList;
import java.util.List;
import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
@Entity
+@Getter
+@Setter
+@NoArgsConstructor
public class Session implements Serializable {
- private int codePIN;
- private List quizzs;
- private List utilisateurs;
- private String theme;
-
- public Session(){
- }
-
- public void setCodePIN(int codePIN){
- this.codePIN = codePIN;
- }
-
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
- public int getCodePIN(){
- return this.codePIN;
- }
-
- public void setQuizzs(List quizzs){
- this.quizzs = quizzs;
- }
+ private int codePIN;
@OneToMany(mappedBy="session")
- public List getQuizzs(){
- return this.quizzs;
- }
+ private List quizzs = new ArrayList<>();
+ private List utilisateurs = new ArrayList<>();
+ private String theme;
- public void setUtilisateurs(List utilisateurs){
- this.utilisateurs = utilisateurs;
- }
-
- @ManyToMany(mappedBy = "session")
- public List getUtilisateurs() {
- return this.utilisateurs;
- }
-
- public String getTheme(){
- return this.theme;
- }
-
- public void setTheme(String theme){
- this.theme = theme;
- }
-
- public void addUser(Utilisateur user){
- this.utilisateurs.add(user);
- }
}
\ No newline at end of file
diff --git a/src/main/java/metier/Utilisateur.java b/src/main/java/metier/Utilisateur.java
index aaf3bd5..92fb57d 100644
--- a/src/main/java/metier/Utilisateur.java
+++ b/src/main/java/metier/Utilisateur.java
@@ -1,48 +1,24 @@
package metier;
import jakarta.persistence.*;
-
+import lombok.*;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.List;
@Entity
+@Getter
+@Setter
+@NoArgsConstructor
public class Utilisateur implements Serializable {
-
- private int id;
- private String name;
- private List session;
- private String email;
- private String password;
- private List quizzs;
-
- public Utilisateur() {}
-
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
+ private int id;
+ private String name;
@Column(unique=true)
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
+ private String email;
+ private String password;
@ManyToMany
@JoinTable(
@@ -50,28 +26,9 @@ public class Utilisateur implements Serializable {
joinColumns = @JoinColumn(name="utilisateur_id"),
inverseJoinColumns = @JoinColumn(name = "session_pin")
)
- public List getSession() {
- return session;
- }
-
- public void setSession(List session){
- this.session = session;
- }
-
- public String getPassword() {
- return this.password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
+ private List session= new ArrayList<>();;
@OneToMany(mappedBy = "utilisateur")
- public List getQuizzs() {
- return quizzs;
- }
+ private List quizzs;
- public void setQuizzs(List quizzs) {
- this.quizzs = quizzs;
- }
}
\ No newline at end of file
diff --git a/src/main/java/servlet/SessionInfo.java b/src/main/java/servlet/SessionInfo.java
index 73129a7..84af8fc 100644
--- a/src/main/java/servlet/SessionInfo.java
+++ b/src/main/java/servlet/SessionInfo.java
@@ -10,14 +10,28 @@ import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
+import metier.Session;
import metier.Utilisateur;
-@WebServlet(name="session", urlPatterns={"/SessionInfo"})
-public class SessionInfo extends HttpServlet {
+@WebServlet(name = "session", urlPatterns = {"/SessionInfo"})
+public class SessionInfo extends HttpServlet {
SessionDAO sessionDAO = new SessionDAO();
+ UtilisateurDAO uDAO = new UtilisateurDAO();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/Session.html").forward(req, resp);
}
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ // Créer une nouvelle session
+ String theme = req.getParameter("theme");
+ Session s = new Session();
+ s.setTheme(theme);
+ sessionDAO.create(s);
+
+ resp.getWriter().println("Session creee avec code PIN: " +
+ s.getCodePIN() + "
");
+ }
}
diff --git a/src/main/java/servlet/UserInfo.java b/src/main/java/servlet/UserInfo.java
index 1cda26d..79fc5ee 100644
--- a/src/main/java/servlet/UserInfo.java
+++ b/src/main/java/servlet/UserInfo.java
@@ -1,4 +1,5 @@
package servlet;
+
import java.io.IOException;
import java.io.PrintWriter;
@@ -10,7 +11,7 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import metier.Utilisateur;
-@WebServlet(name="userinfo", urlPatterns={"/UserInfo"})
+@WebServlet(name = "userinfo", urlPatterns = {"/UserInfo"})
public class UserInfo extends HttpServlet {
UtilisateurDAO utilisateurDAO = new UtilisateurDAO();
@@ -21,18 +22,27 @@ public class UserInfo extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
+ String action = request.getParameter("action");
- Utilisateur u = new Utilisateur();
- u.setName(request.getParameter("name"));
- u.setEmail(request.getParameter("email"));
+ if ("addUser".equals(action)) {
+ Utilisateur u = new Utilisateur();
+ u.setName(request.getParameter("name"));
+ u.setEmail(request.getParameter("email"));
- utilisateurDAO.create(u);
- PrintWriter out = response.getWriter();
- out.println("\n\n" +
- "Recapitulatif des informations de Tibo
\n" +
- "\n" + " - Nom: " + request.getParameter("name") +
- "\n" + "
- Email: " + request.getParameter("email") + "\n" +
- "");
+ utilisateurDAO.create(u);
+ PrintWriter out = response.getWriter();
+ out.println("\n\n" +
+ "
Recapitulatif des informations de Tibo
\n" +
+ "\n" + " - Nom: " + request.getParameter("name") +
+ "\n" + "
- Email: " + request.getParameter("email") + "\n" +
+ "");
+ } else if ("addSession".equals(action)) {
+ int sessionId = Integer.parseInt(request.getParameter("sessionId"));
+ int userId = Integer.parseInt(request.getParameter("userId"));
+ utilisateurDAO.addToSession(sessionId, userId);
+ response.getWriter().println("
Reussi d'ajouter utilisateur " +
+ userId + " au session " + sessionId + "
");
+ }
}
}
diff --git a/src/main/webapp/Session.html b/src/main/webapp/Session.html
index 2397b34..310e94d 100644
--- a/src/main/webapp/Session.html
+++ b/src/main/webapp/Session.html
@@ -1,10 +1,13 @@
-
-
-
+
+ Creer une session
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/UserInfo.html b/src/main/webapp/UserInfo.html
index ebbe719..9be81af 100644
--- a/src/main/webapp/UserInfo.html
+++ b/src/main/webapp/UserInfo.html
@@ -1,10 +1,20 @@
-
+
+ Ajouter utilisateur dans une session
+
diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html
index 5947d6e..4bd5ff8 100644
--- a/src/main/webapp/index.html
+++ b/src/main/webapp/index.html
@@ -6,7 +6,7 @@
Hello World!
-myform
+myform
Quizz
show