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