88 lines
7.5 KiB
Markdown
88 lines
7.5 KiB
Markdown
# TP TAA
|
||
|
||
|
||
## TP1 - TP2
|
||
|
||
### Nous avons maintenant deux rôles :
|
||
|
||
- ADMIN : correspond à l’enseignant
|
||
|
||
- USER : correspond à l’étudiant
|
||
|
||
Pour Keycloak, il faudrait normalement créer les utilisateurs via OAuth2. Cependant, pour ce TP, nous avons utilisé directement la base de données (BDD) pour créer les utilisateurs.
|
||
|
||
### Remarques sur les entités
|
||
|
||
Pour les classes Quizz, Question et Utilisateur, nous avons testé que tout fonctionne, mais elles sont liées à Utilisateur. Cela n’a pas beaucoup de sens avec les rôles USER de Keycloak et ce n’est pas l’objectif principal du TP.
|
||
|
||
### Tests avec Insomnia
|
||
|
||
Pour simplifier et se concentrer sur les fonctionnalités principales, nous avons testé les classes Session et Reponse directement via Insomnia.
|
||
|
||
|
||
#### Utilisateur Resource
|
||
| Methode | URL | Description |
|
||
|---------|----------------------------------------------------|----------------------------------------------------------------------------------------------|
|
||
| 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 |
|
||
|---------|-------------------------------------------------|---------------------------------------------------------------|
|
||
| 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 (keycloak) rejout la session |
|
||
| PUT | `/session/leave/{session_id}` | l'utilisateur courant (keycloak) 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 |
|
||
|---------|-------------------------------------------------|----------------------------------------------------|
|
||
| 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/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
|
||
|
||
- Tuan Minh VU
|
||
|
||
- Thibaut ROCHAS
|