test et correction

This commit is contained in:
trochas
2025-10-17 13:58:59 +02:00
parent ddd4188524
commit f6250a2724
12 changed files with 145 additions and 34 deletions

View File

@@ -27,18 +27,27 @@ public class Choix extends Reponse{
return res; return res;
} }
@Override public String prettyPrinter(int tab){
public String toString(){
String res ="choix : ["; String tabStr = "";
for(int i =0; i<tab;i++)tabStr+="\t";
String res = "";
res += tabStr+"choix : [";
for (int i = 0; i<this.choix.size(); i++) { for (int i = 0; i<this.choix.size(); i++) {
res += this.choix.get(i); res += this.choix.get(i);
if(i<this.choix.size()-1) res+= ", "; if(i<this.choix.size()-1) res+= ", ";
} }
res += "] , reponses : ["; res += "]\n";
res += tabStr +"reponses : [";
for (int i = 0; i<this.reponses.size(); i++) { for (int i = 0; i<this.reponses.size(); i++) {
res += this.reponses.get(i); res += this.reponses.get(i);
if(i<this.reponses.size()-1) res+= ", "; if(i<this.reponses.size()-1) res+= ", ";
} }
res += "]\n";
return res; return res;
} }
} }

View File

@@ -24,4 +24,16 @@ public class Question implements Serializable {
@ManyToOne @ManyToOne
@JoinColumn(name="id_quizz") @JoinColumn(name="id_quizz")
private Quizz quizz; private Quizz quizz;
public String prettyPrinter(int tab){
String res = "";
String tabStr = "";
for(int i =0; i<tab;i++)tabStr+="\t";
res += tabStr + "id : " + this.getId() + "\n";
res += tabStr + "ennonce : \"" + this.getEnonce() + "\"\n";
res += this.getReponse().prettyPrinter(tab);;
return res;
}
} }

View File

@@ -18,8 +18,8 @@ public class Quizz implements Serializable {
@GeneratedValue @GeneratedValue
private int id; private int id;
@ManyToOne @ManyToMany
private Session session; private List<Session> sessions = new ArrayList<Session>();
@ManyToOne @ManyToOne
@JoinColumn(name="id_utilisateur") @JoinColumn(name="id_utilisateur")

View File

@@ -29,7 +29,7 @@ public abstract class Reponse implements Serializable {
return ""; return "";
} }
public String toSring(){ public String prettyPrinter(int tab){
return ""; return "";
} }
} }

View File

@@ -18,13 +18,20 @@ public class ReponseCourte extends Reponse{
return "INPUT"; return "INPUT";
} }
@Override public String prettyPrinter(int tab){
public String toString(){
String res = "INPUT , reponses : ["; String tabStr = "";
for(int i =0; i<tab;i++)tabStr+="\t";
String res = tabStr+"INPUT\n";
res += tabStr +"reponses : [";
for (int i = 0; i<this.reponses.size(); i++) { for (int i = 0; i<this.reponses.size(); i++) {
res += this.reponses.get(i); res += this.reponses.get(i);
if(i<this.reponses.size()-1) res+= ", "; if(i<this.reponses.size()-1) res+= ", ";
} }
return res+"]"; res += "]\n";
return res;
} }
} }

View File

@@ -21,10 +21,10 @@ public class Session implements Serializable {
@Column(unique=true) @Column(unique=true)
private int codePIN; private int codePIN;
@OneToMany(mappedBy="session") @ManyToMany(mappedBy="sessions")
private List<Quizz> quizzs = new ArrayList<>(); private List<Quizz> quizzs = new ArrayList<>();
@ManyToMany(mappedBy = "session") @ManyToMany(mappedBy = "sessions")
private List<Utilisateur> utilisateurs = new ArrayList<>(); private List<Utilisateur> utilisateurs = new ArrayList<>();
private String theme; private String theme;
} }

View File

@@ -26,7 +26,7 @@ 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> session= new ArrayList<>(); private List<Session> sessions= new ArrayList<>();
@OneToMany(mappedBy = "utilisateur") @OneToMany(mappedBy = "utilisateur")
private List<Quizz> quizzs = new ArrayList<>(); private List<Quizz> quizzs = new ArrayList<>();

View File

@@ -34,6 +34,7 @@ public class QuestionController {
Post /question/create param : body Jsp, "enonce" Post /question/create param : body Jsp, "enonce"
Put /question/update/{id} param : body Jsp, "enonce" Put /question/update/{id} param : body Jsp, "enonce"
Get /question/getAll Get /question/getAll
Get /question/get/{id}
Get /question/getReponse/{id} Get /question/getReponse/{id}
Put /question/removeReponse Put /question/removeReponse
Put /question/setReponse/{id}/{idReponse} Put /question/setReponse/{id}/{idReponse}
@@ -68,7 +69,7 @@ public class QuestionController {
*/ */
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
@ResponseBody @ResponseBody
public String updateQuestion(@PathVariable("id") int id, @RequestBody Map<String, String> body) { public String update(@PathVariable("id") int id, @RequestBody Map<String, String> body) {
Question q; Question q;
try { try {
q = qDao.findById(id).get(); q = qDao.findById(id).get();
@@ -81,6 +82,21 @@ public class QuestionController {
return "Question "+id+" succesfully updated! : " + q.getEnonce(); return "Question "+id+" succesfully updated! : " + q.getEnonce();
} }
@GetMapping("/get/{id}")
@ResponseBody
public String get(@PathVariable("id") int id) {
Question q;
String res = "";
try {
q = qDao.findById(id).get();
res=q.prettyPrinter(0);
}
catch (Exception ex) {
return "Erreur lors de la récupération de la question : " + ex.toString();
}
return res;
}
@GetMapping("/getAll") @GetMapping("/getAll")
@ResponseBody @ResponseBody
public String getAll(){ public String getAll(){

View File

@@ -14,8 +14,12 @@ import org.springframework.web.bind.annotation.ResponseBody;
import sample.data.jpa.metier.Question; import sample.data.jpa.metier.Question;
import sample.data.jpa.metier.Quizz; import sample.data.jpa.metier.Quizz;
import sample.data.jpa.metier.Reponse;
import sample.data.jpa.metier.Session;
import sample.data.jpa.metier.Utilisateur;
import sample.data.jpa.service.QuestionDao; import sample.data.jpa.service.QuestionDao;
import sample.data.jpa.service.QuizzDao; import sample.data.jpa.service.QuizzDao;
import sample.data.jpa.service.UtilisateurDao;
@Controller @Controller
@RequestMapping("/quizz") @RequestMapping("/quizz")
@@ -25,31 +29,38 @@ public class QuizzController {
private QuizzDao qDao; private QuizzDao qDao;
@Autowired @Autowired
private QuestionDao qtDao; private QuestionDao qtDao;
@Autowired
private UtilisateurDao uDao;
/* /*
Post /quizz/create Post /quizz/create/{idU}
Delete /quizz/delete/{id} Delete /quizz/delete/{id}
Put /quizz/addQuestion/{idQuestion}/{idQuizz} Put /quizz/addQuestion/{idQuestion}/{idQuizz}
Put /quizz/removeQuestion/{idQuestin}/{idQuizz} Put /quizz/removeQuestion/{idQuestin}/{idQuizz}
Get /quizz/get/{id}
Get /quizz/getAll Get /quizz/getAll
Get /quizz/getQuestions/{id} Get /quizz/getQuestions/{id}
*/ */
@PostMapping("/create") @PostMapping("/create/{id}")
@ResponseBody @ResponseBody
public String create() { public String create(@PathVariable("id") int id) {
String qId = ""; String qId = "";
String emailU = "";
try { try {
Quizz q = new Quizz(); Quizz q = new Quizz();
Utilisateur u = uDao.findById(id).get();
emailU = u.getEmail();
q.setUtilisateur(u);
qDao.save(q); qDao.save(q);
qId = String.valueOf(q.getId()); qId = String.valueOf(q.getId());
} }
catch (Exception ex) { catch (Exception ex) {
return "Error creating the Quizz : " + ex.toString(); return "Error creating the Quizz : " + ex.toString();
} }
return "Quizz succesfully created with id = " + qId; return "Quizz succesfully created by "+ emailU +" with id = " + qId;
} }
@DeleteMapping("/delete/{id}") @DeleteMapping("/delete/{id}")
@@ -100,6 +111,41 @@ public class QuizzController {
} }
@GetMapping("/get/{id}")
@ResponseBody
public String get(@PathVariable("id") int id){
String res = "";
try {
Quizz q = qDao.findById(id).get();
res += "id : " + id + "\n";
if(q.getUtilisateur()!=null){
res += "create by : " + q.getUtilisateur().getId() +
" (" + q.getUtilisateur().getEmail() + ")\n";
}
List<Session> sessions = q.getSessions();
List<Question> questions = q.getQuestions();
res += "Sessions :\n";
for(Session session : sessions){
res += "\tid : " + session.getId()
+" , theme : " + session.getTheme()
+" , nbUtilisateur : " + session.getUtilisateurs().size()
+" , PIN : " + session.getCodePIN()+"\n";
}
res += "Question :\n";
for( int i = 0; i<questions.size(); i++){
res+="\tQ"+(i+1)+"\n";
res+=questions.get(i).prettyPrinter(2);
}
}
catch (Exception ex) {
return "Error get Quizz :" + ex.toString();
}
return "Quizz : \n" + res;
}
@GetMapping("/getAll") @GetMapping("/getAll")
@ResponseBody @ResponseBody
public String getAll(){ public String getAll(){

View File

@@ -33,8 +33,8 @@ public class ReponseController {
Get /reponse/getAll Get /reponse/getAll
Get /reponse/get/{id} Get /reponse/get/{id}
Delete /reponse/delete/{id} Delete /reponse/delete/{id}
Put /question/removeReponse/{id} param : body Jsp, "reponse" Put /reponse/removeReponse/{id} param : body Jsp, "reponse"
Put /question/addReponse/{id} param : body Jsp, "reponse" Put /reponse/addReponse/{id} param : body Jsp, "reponse"
Put /reponse/addChoix/{id} param : body Jsp, "choix" Put /reponse/addChoix/{id} param : body Jsp, "choix"
Put /reponse/removeChoix/{id} param : body Jsp, "choix" Put /reponse/removeChoix/{id} param : body Jsp, "choix"
@@ -77,7 +77,7 @@ public class ReponseController {
String res = ""; String res = "";
List<Reponse> reponses = rDao.findAll(); List<Reponse> reponses = rDao.findAll();
for (Reponse reponse : reponses) { for (Reponse reponse : reponses) {
res+="id : " + reponse.getId() + " , " + reponse.toSring() + "\n"; res+="id : " + reponse.getId() + "\n" + reponse.prettyPrinter(1) + "\n";
} }
return res; return res;
} catch (Exception ex) { } catch (Exception ex) {
@@ -91,7 +91,7 @@ public class ReponseController {
try { try {
String res = ""; String res = "";
Reponse reponse = rDao.findById(id).get(); Reponse reponse = rDao.findById(id).get();
res+="id : " + reponse.getId() + " , " + reponse.toSring(); res+="id : " + reponse.getId() + "\n" + reponse.prettyPrinter(1);
return res; return res;
} catch (Exception ex) { } catch (Exception ex) {
return "Erreur lors de la récupréation de la réponse : "+id+" : " + ex.toString(); return "Erreur lors de la récupréation de la réponse : "+id+" : " + ex.toString();

View File

@@ -4,6 +4,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@@ -20,6 +21,7 @@ import sample.data.jpa.service.QuizzDao;
import sample.data.jpa.service.SessionDao; import sample.data.jpa.service.SessionDao;
import sample.data.jpa.service.UtilisateurDao; import sample.data.jpa.service.UtilisateurDao;
@Controller
@RequestMapping("/session") @RequestMapping("/session")
public class SessionController { public class SessionController {
@@ -34,7 +36,7 @@ public class SessionController {
Post /session/create param : body Jsp, "theme" Post /session/create param : body Jsp, "theme"
Delete /session/delete/{id} Delete /session/delete/{id}
Get /session/getAll Get /session/getAll
Put /session/addQuizz/{id} Put /session/addQuizz/{id}/{idQ}
Put /session/removeQuizz/{id} Put /session/removeQuizz/{id}
Put /session/update/{id} param : body Jsp, "theme" Put /session/update/{id} param : body Jsp, "theme"
Put /session/addUtilisateur/{id}/{idU} Put /session/addUtilisateur/{id}/{idU}
@@ -83,7 +85,8 @@ public class SessionController {
String res = ""; String res = "";
for(Session session : sessions){ for(Session session : sessions){
res+="id: " + session.getId() + " , "; res+="id: " + session.getId() + " , ";
res+="theme: \"" + session.getTheme() + "\"\n"; res+="theme: \"" + session.getTheme() + "\" , ";
res += "nbUtilisateur :" + session.getUtilisateurs().size() + "\n";
} }
@@ -100,7 +103,7 @@ public class SessionController {
Session s = sDao.findById(id).get(); Session s = sDao.findById(id).get();
Quizz q = qDao.findById(qId).get(); Quizz q = qDao.findById(qId).get();
s.getQuizzs().add(q); s.getQuizzs().add(q);
q.setSession(s); q.getSessions().add(s);
sDao.save(s); sDao.save(s);
qDao.save(q); qDao.save(q);
} catch (Exception ex) { } catch (Exception ex) {
@@ -111,12 +114,12 @@ public class SessionController {
@PutMapping("/removeQuizz/{id}/{qid}") @PutMapping("/removeQuizz/{id}/{qid}")
@ResponseBody @ResponseBody
public String removeReponse(@PathVariable("id") int id, @PathVariable("qid") int qId) { public String removeQuizz(@PathVariable("id") int id, @PathVariable("qid") int qId) {
try { try {
Session s = sDao.findById(id).get(); Session s = sDao.findById(id).get();
Quizz q = qDao.findById(qId).get(); Quizz q = qDao.findById(qId).get();
s.getQuizzs().remove(q); s.getQuizzs().remove(q);
q.setSession(null); q.getSessions().remove(s);
sDao.save(s); sDao.save(s);
qDao.save(q); qDao.save(q);
} catch (Exception ex) { } catch (Exception ex) {
@@ -152,7 +155,7 @@ public class SessionController {
try { try {
Utilisateur u = uDao.findById(idU).get(); Utilisateur u = uDao.findById(idU).get();
Session s = sDao.findById(id).get(); Session s = sDao.findById(id).get();
u.getSession().add(s); u.getSessions().add(s);
s.getUtilisateurs().add(u); s.getUtilisateurs().add(u);
sDao.save(s); sDao.save(s);
uDao.save(u); uDao.save(u);
@@ -168,7 +171,7 @@ public class SessionController {
try { try {
Utilisateur u = uDao.findById(idU).get(); Utilisateur u = uDao.findById(idU).get();
Session s = sDao.findById(id).get(); Session s = sDao.findById(id).get();
u.getSession().remove(s); u.getSessions().remove(s);
s.getUtilisateurs().remove(u); s.getUtilisateurs().remove(u);
sDao.save(s); sDao.save(s);
uDao.save(u); uDao.save(u);

View File

@@ -3,6 +3,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@@ -17,6 +18,7 @@ import sample.data.jpa.metier.Utilisateur;
import sample.data.jpa.service.SessionDao; import sample.data.jpa.service.SessionDao;
import sample.data.jpa.service.UtilisateurDao; import sample.data.jpa.service.UtilisateurDao;
@Controller
@RequestMapping("/utilisateur") @RequestMapping("/utilisateur")
public class UtilisateurController { public class UtilisateurController {
@@ -30,6 +32,7 @@ public class UtilisateurController {
Post /utilisateur/create param : body Jsp, "name", "email", "password" Post /utilisateur/create param : body Jsp, "name", "email", "password"
Delete /utilisateur/delete/{id} Delete /utilisateur/delete/{id}
Get /utilisateur/getAll Get /utilisateur/getAll
Get /utilisateur/getSessions
Put /utilisateur/addSession/{idUtilisateur}/{idSession} Put /utilisateur/addSession/{idUtilisateur}/{idSession}
Put /utilisateur/removeSession/{idUtilisateur}/{idSession} Put /utilisateur/removeSession/{idUtilisateur}/{idSession}
Put /utilisateur/update/{id} param : body Jsp, "name", "email", "oldpassword, "password" Put /utilisateur/update/{id} param : body Jsp, "name", "email", "oldpassword, "password"
@@ -85,7 +88,22 @@ public class UtilisateurController {
return res; return res;
} catch (Exception ex) { } catch (Exception ex) {
return "Error get all session : " + ex.toString(); return "Erreur pendant la récupération des utilisateurs : " + ex.toString();
}
}
@GetMapping("/getSessions/{id}")
@ResponseBody
public String getSessions(@PathVariable("id") int id){
try {
Utilisateur u = uDao.findById(id).get();
String res = "";
for(Session s : u.getSessions()){
res += "id : "+ s.getId() + " , theme : " + s.getTheme() + "\n";
}
return res;
} catch (Exception ex) {
return "Erreur pendant la récupération les sessions de l'utilisateur : " + ex.toString();
} }
} }
@@ -95,7 +113,7 @@ public class UtilisateurController {
try { try {
Utilisateur u = uDao.findById(id).get(); Utilisateur u = uDao.findById(id).get();
Session s = sDao.findById(sId).get(); Session s = sDao.findById(sId).get();
u.getSession().add(s); u.getSessions().add(s);
s.getUtilisateurs().add(u); s.getUtilisateurs().add(u);
sDao.save(s); sDao.save(s);
uDao.save(u); uDao.save(u);
@@ -112,7 +130,7 @@ public class UtilisateurController {
try { try {
Utilisateur u = uDao.findById(id).get(); Utilisateur u = uDao.findById(id).get();
Session s = sDao.findById(sId).get(); Session s = sDao.findById(sId).get();
u.getSession().remove(s); u.getSessions().remove(s);
s.getUtilisateurs().remove(u); s.getUtilisateurs().remove(u);
sDao.save(s); sDao.save(s);
uDao.save(u); uDao.save(u);