Skip to content
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] Script pour relier des réponses en doublon à un autre assessment (PIX-16235). #11391

Merged

Conversation

alexandrecoin
Copy link
Contributor

@alexandrecoin alexandrecoin commented Feb 11, 2025

🥞 Problème

La dernière question posée à certains des candidats de certification s'est retrouvée enregistrée deux fois en BDD, et ceux-ci ont répondu à cette question supplémentaire.
Cela entraine la création de données inutiles en BDD.

La suppression des answers via une requête SQL nous est impossible, nous passons donc par un script.

🥓 Proposition

Nous listons dans un fichier CSV les id des certification-challenges, ainsi que les id des answers afin de supprimer les certification-challenge-capacities et certification-challenges créés en trop.
En ce qui concerne les answers, nous les rattachons vers un autre assessment dédié à cela et qui voit ses propriétés lastQuestionDate, lastChallengeId mises à jour.

🧃 Remarques

😋 Pour tester

NB: Il est également possible (et recommandé) de réaliser ce test avec plusieurs answerId et certificationChallengeId (donc passer plusieurs tests de certification)

  • Créer une nouvelle session avec [email protected]
  • Ajouter un candidat
  • Démarrer le test avec [email protected] et aller jusqu'à la dernière question sans y répondre
  • En BDD, dupliquer le certification-challenge en modifiant les colonnes createdAt et updatedAt de façon à montrer que le doublon a été enregistré un peu après le premier (=réplique d'un enregistrement concurrentiel) et SURTOUT en modifiant le challengeId en proposant une variante de la question initiale.
    ⚠️ Noter quelque part la valeur de la colonne createdAt de ce doublon nouvellement créé, cela sera utile pour la fin du test fonctionnel
  • Répondre à la 32ème question
  • Normalement, la 33ème question vous sera proposée, y répondre également finaliser le test afin de générer un assessment-result (Qui ne sera pas créé à la complétion du test suite à une erreur lors du scoring)

Une fois cela fait, récupérer l'id du certification-challenge en trop, ainsi que l'id de l'answer qui lui est associé.
Dans un CSV au format qui suit, veuillez utiliser les valeurs correspondantes:

certificationChallengeId,answerId,completionDate
123,456,2021-01-02 8:20:45.000000+01:00
  • Lancer un assessment de type évaluation avec le compte Pix que vous souhaitez de façon à créer un nouvel assessment en BDD
  • Récupérer l'id de l'assessment nouvellement créé
  • Lancer le script avec le fichier et assessmentId en paramètres
scalingo -a pix-api-review-pr11391 run --file="<csvFilePath>" "node scripts/certification/fix-doubled-answers.js --file /tmp/uploads/<fileName> --assessmentId <assessmentId>"
  • Vérifier que le certification-challenge en trop a bien été supprimé
  • Vérifier que la certification-challenge-capacities en trop a bien été supprimée
  • Vérifier que l'answer pointe désormais vers l'assessment de type evaluation
  • Vérifier que l'assessment lié aux données supprimées ait les colonnes state à completed et updatedAt correspondant au createdAt du certification-challenge n°33 du candidat
  • Vérifier que le certification-course lié aux données supprimées ait les colonnes abortReason à null et completedAt correspondant au createdAt du certification-challenge n°33 du candidat

@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

@alexandrecoin alexandrecoin force-pushed the PIX-16235-script-to-remove-doubled-answers branch 2 times, most recently from d5aab81 to fdaef05 Compare February 13, 2025 09:35
@alexandrecoin
Copy link
Contributor Author

alexandrecoin commented Feb 13, 2025

Avant exécution du script :

Certification-challenges créant un enregistrement superflu dans certification-challenge-capacities
Capture d’écran 2025-02-13 à 17 13 46

Answers liés au certification-challenges superflus
Capture d’écran 2025-02-13 à 17 16 30

Certification-challenges superflus
Capture d’écran 2025-02-13 à 17 18 19

@alexandrecoin alexandrecoin force-pushed the PIX-16235-script-to-remove-doubled-answers branch 3 times, most recently from 44ddad6 to 76a41ef Compare February 14, 2025 13:26
@alexandrecoin
Copy link
Contributor Author

alexandrecoin commented Feb 14, 2025

Exécution du script avec l'id d'assessment 139812

Capture d’écran 2025-02-14 à 14 33 15

@alexandrecoin
Copy link
Contributor Author

certification-challenges superflus après exécution du script:
Capture d’écran 2025-02-14 à 14 34 33

certification-challenge-capacities superflus après exécution du script:
Capture d’écran 2025-02-14 à 14 35 46

answers rattachés au nouvel assessment après exécution du script:
Capture d’écran 2025-02-14 à 14 37 25

@alexandrecoin alexandrecoin force-pushed the PIX-16235-script-to-remove-doubled-answers branch 4 times, most recently from f52e149 to 188e302 Compare February 17, 2025 09:16
@yaf yaf added Func Review OK PO validated functionally the PR and removed 👀 Func Review Needed Need PO validation for this functionally labels Feb 17, 2025
@alexandrecoin alexandrecoin force-pushed the PIX-16235-script-to-remove-doubled-answers branch 6 times, most recently from 9598823 to d1d17ab Compare February 18, 2025 12:13
@alexandrecoin alexandrecoin requested a review from a team as a code owner February 18, 2025 12:13
@alexandrecoin alexandrecoin force-pushed the PIX-16235-script-to-remove-doubled-answers branch from d1d17ab to 0dd3b66 Compare February 18, 2025 12:16
@alexandrecoin alexandrecoin force-pushed the PIX-16235-script-to-remove-doubled-answers branch 2 times, most recently from 65c0470 to 47f26fc Compare February 18, 2025 13:49
Copy link
Member

@yaf yaf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀 :shipit:

@yaf yaf force-pushed the PIX-16235-script-to-remove-doubled-answers branch from 47f26fc to 857f126 Compare February 18, 2025 16:13
Comment on lines +71 to +73
completedAt: completionDate,
endedAt: completionDate,
updatedAt: completionDate,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🥳

@alexandrecoin alexandrecoin force-pushed the PIX-16235-script-to-remove-doubled-answers branch from 857f126 to c9065f1 Compare February 19, 2025 08:49
@pix-service-auto-merge pix-service-auto-merge merged commit 3dca86b into dev Feb 19, 2025
9 of 11 checks passed
@pix-service-auto-merge pix-service-auto-merge deleted the PIX-16235-script-to-remove-doubled-answers branch February 19, 2025 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants