-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TECH] Eviter de re-déclencher les calculs pour déterminer la prochaine épreuve dans assessments/:id/next si la dernière épreuve proposée n'a pas encore été répondue #11843
base: dev
Are you sure you want to change the base?
Conversation
Une fois les applications déployées, elles seront accessibles via les liens suivants :
Les variables d'environnement seront accessibles via les liens suivants : |
ac03188
to
c8db64e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Trop bien, merci ! 🚀
api/tests/shared/unit/domain/usecases/get-next-challenge_test.js
Outdated
Show resolved
Hide resolved
77da09d
to
d2a26db
Compare
c8db64e
to
b5308d1
Compare
Je suis d'accord avec le fond, mais j'ai une petite inquiétude, peut-être pas justifiée, sur le fait qu'un challenge soit périmé entre temps ou autres. |
Bien vu. Je peux ajouter cette vérification je pense que c'est pas cher |
d2a26db
to
5d39622
Compare
253168a
to
42aea9c
Compare
42aea9c
to
9a4fd15
Compare
9a4fd15
to
c170388
Compare
7f83e80
to
f0fab2f
Compare
b5308d1
to
38dc92f
Compare
f0fab2f
to
70a9ebf
Compare
70a9ebf
to
05da303
Compare
38dc92f
to
8091084
Compare
…me not playable in the mean time
8091084
to
82abf87
Compare
🌸 Problème
la route api/assessments/:id/next (la fameuse GetNext) est une des routes les plus appelées.
Certains de ces appels ont lieu alors qu'il n'y a pas besoin de recalculer quelle sera la prochaine épreuve à poser, car la dernière posée n'a pas encore été répondue.
Les cas qui me viennent en tête, et qui sont fréquents :
🌳 Proposition
Il se trouve que, lorsqu'on fini de recalculer quelle sera la prochaine épreuve à poser, on enregistre l'id de la prochaine épreuve dans la table
assessments
, souslastChallengeId
.On peut utiliser cet id pour déterminer si, en regardant les réponses apportées dans le cadre de l'assessment en cours, cette épreuve a déjà été répondue ou pas. A défaut de réponse, on sait qu'il n'y a pas besoin de redéclencher tout le GetNext (qui est par ailleurs déterministe et qui retournera de toute façon le même ID). Il suffit de retourner l'épreuve pointée par l'id dans
lastChallengeId
.Cette PR contient :
🐝 Remarques
🤧 Pour tester
Non régression de toutes les modalités d'assessment (sauf PixJunior).
Toujours deux appels API consécutifs mais normalement le deuxième appel ne devrait pas refaire tous les calculs.
Une manière de vérifier en local pourrait être de lancer son serveur en mode DEBUG=knex:* et de constater que sur le deuxième appel de GetNext on n'a pas remonté la terre entière dans la BDD