fix: add random game to history + modularize even more Room
Les parties en mode aléatoire sont ajoutées dans l'historique dans la vue d'administration. La logique de résultats et de réponses a été déplacée dans leurs "managers" respectifs.
Closes #174 (closed), &18.
Ajouts
- ResultManager: gère les résultats de la partie.
- AnswerManager: gère les réponses d'une question. La source de vérité pour l'index de la question actuelle reste encore dans Room.
- Answer possède maintenant un attribut
type
pour différencier les réponses des QCM de celles des QRL. Cela permet d'assurer une sécurité des types.
Modifications
- Les jeux aléatoires sont générés par QuestionBankService. Les questions sont choisies à l'aide d'une requête MongoDB.
- Lorsque les jeux sont envoyés dans la vue de création de partie, la requête à la base de données pour le jeu aléatoire ne fait que demander la quantité de documents.
- La méthode
AnswerManager.get
(anciennementRoom.getAnswers
) est rendue générique pour éviter l'utilisation de type-casting.
Conséquences
- Fin du epic &18 sur le mode aléatoire.
- Diminution significative de la taille de Room (321 -> 236).
- Encore une fois, il faudra faire attention, car des parties du code ont été déplacées dans d'autres méthodes/d'autres fichiers.