-
Notifications
You must be signed in to change notification settings - Fork 58
[TECH] Créer un nouvel assessment result lorsqu'on annule et désannule une certification sur Pix Admin (PIX-16045). #11131
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] Créer un nouvel assessment result lorsqu'on annule et désannule une certification sur Pix Admin (PIX-16045). #11131
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 : |
1ee1841
to
16052c5
Compare
1d6ca25
to
6c80303
Compare
6c80303
to
595a066
Compare
595a066
to
3e262be
Compare
Premier test func v2 (KO) Decision equipe
ℹ️ OK de pas pouvoir annuler si pas finalise |
3e262be
to
d33d490
Compare
api/src/certification/session-management/application/cancellation-controller.js
Outdated
Show resolved
Hide resolved
27bbc6e
to
e405c81
Compare
api/src/certification/evaluation/domain/services/scoring/scoring-v3.js
Outdated
Show resolved
Hide resolved
e405c81
to
3440bef
Compare
b3b4c21
to
18b9e20
Compare
Testé sur V3 : annulation ✅ désannulation ✅ Quel est le problème ? Le problème vient d'ici :
Dans le scoring V2, il y a le mécanisme de neutralisation/ dé-neutralisation d'un challenge. En faisaint appel au scoring pour l'annulation, on passe là dedans du coup et forcément comme on à suffisamment de challenge trustable, on tombe dans le else qui va uncancel la certif course. Comment corriger ça ? Initialement, coté usecase, on cancel la certif course puis on fait le scoring. => On score (et on passe par le else..) PUIS on cancel coté usecase. Et on retombe sur nos pattes. C'est clairement pas clean mais ça nous permet de faire avancer notre sujet. Et du coup |
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.
Merci pour les tests func :)
* Using {@link https://jsdoc.app/tags-type "Closure Compiler's syntax"} to document injected dependencies | ||
* @typedef {handleCertificationRescoring} HandleCertificationRescoring | ||
*/ | ||
const handlersAsServices = injectDependencies(handlersToBeInjected, dependencies); |
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.
A noter pour de futurs lecteurs : ceci est un pont pour amorcer la transition ou on arrive a se debarrasser de l'event dispatcher
api/src/certification/session-management/domain/usecases/uncancel.js
Outdated
Show resolved
Hide resolved
api/src/certification/session-management/domain/usecases/uncancel.js
Outdated
Show resolved
Hide resolved
api/src/certification/session-management/domain/usecases/cancel.js
Outdated
Show resolved
Hide resolved
await certificationRescoringRepository.execute({ event: certificationCancelledEvent }); | ||
|
||
certificationCourse.cancel(); | ||
await certificationCourseRepository.update({ certificationCourse }); |
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.
Comme c'est le mecanisme principal pour le moment, je propose de mettre comme dans uncancel, a savoir d'abord l'update avant l'event. Comme ca si l'event echoue, le update aura bien ete fait dans tous les cas.
De maniere generale d'ailleurs je trouve mieux une meilleure pratique que les operations locales soit toutes validees avant de propager un evenement a d'autres contextes.
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.
vu ensemble, c'est le fameux twist pour le scoring v2 => todo: faire un commentaire pour prévenir du choix d'appels dans cet ordre là
Quelqu'un peut vérifier en BDD RA (j'ai pas accès ⛔️) que le nouvel assessment-result (le dernier) est "cancelled" pour les :
|
J'ai fait les quelques modifs proposées par toi @Steph0. Et j'ai ajouté le commentaire que vous avez évoqué avec @AndreiaPena ... Pas sûr que le commentaire apporte des informations suffisantes, il faut peut-être le reprendre ? |
ok pour le courseId |
Je confirme ! |
@yaf Le commentaire doit se faire dans le usecase cancel.js où nous avons volontairement inversé l'appel au rescoring puis à l'update du certif course |
f1f0135
to
3b611fa
Compare
Je viens de rectifier. Merci ! |
Co-authored-by: Alexandre COIN <alexandre.pc.coin@gmail.com> Co-authored-by: Andreia Pena <37305474+D0C702WH0@users.noreply.github.com> Co-authored-by: Yannick François <yannick.francois@pix.fr>
Co-authored-by: Alexandre COIN <alexandre.pc.coin@gmail.com> Co-authored-by: Andreia Pena <58915422+AndreiaPena@users.noreply.github.com>
Co-authored-by: Andreia Pena <andreia.pena@pix.fr> Co-authored-by: Steph0 <Steph0@users.noreply.github.com> Co-authored-by: Alexandre Coin <alexandre@mbpdealexandre-1.home>
Co-authored-by: Andreia Pena <58915422+AndreiaPena@users.noreply.github.com>
…tions) Co-authored-by: Yannick François <yannick.francois@pix.fr>
3b611fa
to
321d6f0
Compare
🥞 Problème
Actuellement, lorsque le métier annule ou désannule une certification, on ne modifie que le booléen isCancelled sur le certification-course.
🥓 Proposition
🧃 Remarques
😋 Pour tester