readem + correction
This commit is contained in:
73
README.md
73
README.md
@@ -7,45 +7,62 @@
|
||||
|
||||
#### Utilisateur Resource
|
||||
| Methode | URL | Description |
|
||||
|---------|---------------------------------------------------|-------------------------------------------------------|
|
||||
| GET | `/utilisateur` | Retourne toute la liste de l'utilisateur |
|
||||
| POST | `/utilisateur/register` | S'incrire nouveaux utilisateur |
|
||||
| GET | `/utilisateur/login` | Se connecter |
|
||||
| GET | `/utilisateur/{id}` | Retourne l'utilisateur par id |
|
||||
| GET | `/utilisateur/{user_id}/session` | Retoune la liste de session que l'utilisateur attends |
|
||||
| PUT | `/utilisateur/{user_id}/add_session/{session_id}` | Ajoute un nouveau session à la liste de l'utilisateur |
|
||||
| DELETE | `/utilisteur/{user_id}/delete` | Supprime l'utilisateur |
|
||||
|---------|----------------------------------------------------|----------------------------------------------------------------------------------------------|
|
||||
| POST | `/utilisateur/create` | Créer un utilisateur (avec aussi l'id keyloak) ("name","email et "password" dans body json) |
|
||||
| GET | `/utilisateur/getAll` | retourn tout les utilisateurs (id, name, email) |
|
||||
| GET | `/utilisateur/getSessions/{session_id}` | Retourne les sessions de l'utilisateur |
|
||||
| PUT | `/utilisateur/addSession/{user_id}/{session_id}` | rejoint une session à la liste de l'utilisateur |
|
||||
| PUT | `/utilisateur/removeSession/{user_id}/{session_id}`| quite une session à la liste de l'utilisateur |
|
||||
| PUT | `/utilisateur/update/{user_id}` | met à jour les info de l'utilisateur ("name","email et "password" dans body json) |
|
||||
| DELETE | `/utilisteur/delete/{user_id}/delete` | Supprime l'utilisateur |
|
||||
|
||||
#### Session Resource
|
||||
| Methode | URL | Description |
|
||||
|---------|--------------------------------------|------------------------------------|
|
||||
| GET | `/session` | Retourne toute la liste du session |
|
||||
| GET | `/session/{id}` | Retourne la session par id |
|
||||
| GET | `/session/{session_id}/quizzs` | Retourne la liste de quizzs |
|
||||
| GET | `/session/{session_id}/utilisateurs` | Retourne la liste de l'utilisateur |
|
||||
| DELETE | `/session/{session_id}/delete` | Supprime la session |
|
||||
|---------|-------------------------------------------------|---------------------------------------------------------------|
|
||||
| POST | `/session/create` | créer une nouvelle session ("theme":String dans body json) |
|
||||
| GET | `/session/getAll` | Retourne la liste des sessions |
|
||||
| PUT | `/session/addQuizz/{session_id}/{quizz_id}` | ajoute un quizz à la session |
|
||||
| PUT | `/session/removeQuizz/{session_id}/{quizz_id}` | retire un quizz à la session |
|
||||
| PUT | `/session/update/{session_id}` | change le thème ("theme":String dans body json) |
|
||||
| PUT | `/session/join/{session_id}` | l'utilisateur courant (keyloak) rejout la session |
|
||||
| PUT | `/session/leave/{session_id}` | l'utilisateur courant (keyloak) quitte la session |
|
||||
| DELETE | `/session/delete/{session_id}` | Supprime la session |
|
||||
|
||||
#### ReponseController
|
||||
| Methode | URL | Description |
|
||||
|---------|-------------------------------------------------|---------------------------------------------------------------------------|
|
||||
| POST | `/reponse/create/choix` | créer un objet réponse de type choix multiple |
|
||||
| POST | `/reponse/create/courte` | créer un objet réponse de type réponse courte |
|
||||
| GET | `/reponse/getAll` | affiche l'id et les réponse correct de chaque réponse |
|
||||
| GET | `/reponse/get/{id_reponse}` | affiche toutes les info d'un réponse |
|
||||
| DELETE | `/reponse/delete/{id_reponse}` | supprime un objet réponse |
|
||||
| PUT | `/reponse/removeReponse/{id_reponse} ` | retire une réponse correcte ("reponse" dans body json) |
|
||||
| PUT | `/reponse/addReponse/{id_reponse} ` | ajoute une réponse correcte ("reponse" dans body json) |
|
||||
| PUT | `/reponse/addChoix/{id_reponse} ` | ajoute un choix (réponse choix uniquement) ("choix":String dans body json)|
|
||||
| PUT | `/reponse/removeChoix/{id_reponse}` | retire un choix (réponse choix uniquement) ("choix":String dans body json)|
|
||||
|
||||
#### Quizz Resource
|
||||
| Methode | URL | Description |
|
||||
|---------|------------------------------------------------|----------------------------------------|
|
||||
| GET | `/quizz` | Retourne toute la liste du quizz |
|
||||
| GET | `/quizz/{quizz_id}/add_question/{question_id}` | Ajoute une nouvuelle question au quizz |
|
||||
| DELETE | `/quizz/{quizz_id}/delete` | Suprrime le quizz |
|
||||
| PUT | `/quizz/{quizz_id}/deleteQ` | Supprime toute les questions de quizz |
|
||||
|---------|-------------------------------------------------|----------------------------------------------------|
|
||||
| POST | `/quizz/create/{utilisateur_id}` | céer un nouveau quizz par associé à un utilisateur |
|
||||
| GET | `/quizz/getQuestions/{quizz_id}` | Retourne la list des questions d'un quizz |
|
||||
| GET | `/quizz/getAll` | Retourne toute la liste du quizz |
|
||||
| PUT | `/quizz/add_question/{quizz_id}/{question_id}` | Ajoute une nouvelle question au quizz |
|
||||
| PUT | `/quizz/removeQuestion/{quizz_id}/{question_id}`| Ajoute une nouvelle question au quizz |
|
||||
| DELETE | `/quizz/delete/{quizz_id}` | Suprrime le quizz |
|
||||
|
||||
#### Question Resource
|
||||
| Methode | URL | Description |
|
||||
|----------|----------------------------------------------------|-----------------------------------------------------------------------|
|
||||
| GET | `/question` | Retourne toute la liste du question |
|
||||
| POST | `/question/addQuestion` | Créer une question |
|
||||
| PUT | `/question/{question_id}/changeQuestion` | Change l'énoncé de la question |
|
||||
| GET | `/question/{question_id}/getReponse` | retourne l'objet Reponse |
|
||||
| PUT | `/question/{question_id}/addReponse` | Ajoute une réponse à Reponse |
|
||||
| DELETE | `/question/{question_id}/deletReponses` | supprime toute les réponse correct |
|
||||
| PUT | `/question/{question_id}/addReponse` | Ajoute une réponse à Reponse |
|
||||
| PUT | `/question/{question_id}/setReponse/choix` | créer un nouvel objet Reponse de type Choix pour la question |
|
||||
| PUT | `/question/{question_id}/setReponse/reponseCourte` | créer un nouvel objet Reponse de type reponse courte pour la question |
|
||||
| PUT | `/question/{question_id}/addChoix` | rajoute un choix si Reponse est de type Choix |
|
||||
| POST | `/question/create` | Créer une question ( "enonce":String dans body Json) |
|
||||
| PUT | `/question/update/{question_id}` | Change l'énoncé de la question ("enonce":String dans body JSON) |
|
||||
| GET | `/question/get/{question_id}` | donne toutes les infos de la question sous forme de String |
|
||||
| GET | `/question/getAll` | donne l'id et l'énoncé de toutes les questions sous forme de String |
|
||||
| GET | `/question/getReponse/{question_id}` | donne toutes les réponse correct sous forme de String |
|
||||
| PUT | `/question/setReponse/{question_id}/{reponse_id}` | met à null l'objet réponse à la question |
|
||||
| PUT | `/question/setReponse/{question_id}/{reponse_id}` | Associe un objet réponse à la question |
|
||||
| PUT | `/question/delet/{question_id}` | supprime la question |
|
||||
|
||||
|
||||
## Auteurs
|
||||
|
||||
@@ -23,7 +23,7 @@ public class Quizz implements Serializable {
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name="id_utilisateur")
|
||||
private Utilisateur utilisateur;
|
||||
private Utilisateur createur;
|
||||
|
||||
@OneToMany(mappedBy = "quizz")
|
||||
private List<Question> questions=new ArrayList<Question>();
|
||||
|
||||
@@ -32,4 +32,14 @@ public abstract class Reponse implements Serializable {
|
||||
public String prettyPrinter(int tab){
|
||||
return "";
|
||||
}
|
||||
|
||||
public String toString(){
|
||||
String res = "[";
|
||||
for (int i = 0; i<this.reponses.size(); i++) {
|
||||
res += this.reponses.get(i);
|
||||
if(i<this.reponses.size()-1) res+= ", ";
|
||||
}
|
||||
res += "]";
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,6 @@ public class Utilisateur implements Serializable {
|
||||
)
|
||||
private List<Session> sessions= new ArrayList<>();
|
||||
|
||||
@OneToMany(mappedBy = "utilisateur")
|
||||
@OneToMany(mappedBy = "createur")
|
||||
private List<Quizz> quizzs = new ArrayList<>();
|
||||
}
|
||||
@@ -50,7 +50,7 @@ public class QuizzController {
|
||||
Quizz q = new Quizz();
|
||||
Utilisateur u = uDao.findById(id).get();
|
||||
emailU = u.getEmail();
|
||||
q.setUtilisateur(u);
|
||||
q.setCreateur(u);
|
||||
qDao.save(q);
|
||||
qId = String.valueOf(q.getId());
|
||||
} catch (Exception ex) {
|
||||
@@ -113,9 +113,9 @@ public class QuizzController {
|
||||
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";
|
||||
if(q.getCreateur()!=null){
|
||||
res += "create by : " + q.getCreateur().getId() +
|
||||
" (" + q.getCreateur().getEmail() + ")\n";
|
||||
}
|
||||
List<Session> sessions = q.getSessions();
|
||||
List<Question> questions = q.getQuestions();
|
||||
|
||||
@@ -38,10 +38,10 @@ public class SessionController {
|
||||
Delete /session/delete/{id}
|
||||
Get /session/getAll
|
||||
Put /session/addQuizz/{id}/{idQ}
|
||||
Put /session/removeQuizz/{id}
|
||||
Put /session/removeQuizz/{id}/{idQ}
|
||||
Put /session/update/{id} param : body Jsp, "theme"
|
||||
Put /session/join/{sessionId}
|
||||
Put /session//leave/{sessionId}
|
||||
Put /session/leave/{sessionId}
|
||||
*/
|
||||
@PostMapping("/create")
|
||||
@ResponseBody
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -37,19 +38,21 @@ public class UtilisateurController {
|
||||
Get /utilisateur/getSessions
|
||||
Put /utilisateur/addSession/{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", "password"
|
||||
*/
|
||||
|
||||
@PostMapping("/create")
|
||||
@ResponseBody
|
||||
@PreAuthorize("hasRole('ADMIN')")
|
||||
public String create(@RequestBody Map<String, String> body) {
|
||||
@PreAuthorize("hasAnyRole('ADMIN','USER')")
|
||||
public String create(@RequestBody Map<String, String> body, JwtAuthenticationToken auth) {
|
||||
try {
|
||||
if(body.containsKey("name") && body.containsKey("email") && body.containsKey("password")){
|
||||
Utilisateur u = new Utilisateur();
|
||||
String keycloakUserId = auth.getToken().getClaim("sub");
|
||||
u.setName(body.get("name"));
|
||||
u.setEmail(body.get("email"));
|
||||
u.setPassword(body.get("password"));
|
||||
u.setKeycloakId(keycloakUserId);
|
||||
uDao.save(u);
|
||||
String uId = String.valueOf(u.getId());
|
||||
return "Utilisateur \"" + u.getName() + "\" créé avec succès avec l'id = " + uId;
|
||||
|
||||
Reference in New Issue
Block a user