pix icon indicating copy to clipboard operation
pix copied to clipboard

[TECH] Remplacer ember-cp-validation par Joi dans Pix Admin

Open bpetetot opened this issue 1 month ago • 2 comments

ℹ️ Info

  • Le nombre de changements important est causé par le package-lock.json
  • Simple à relire commit par commit

❄️ Problème

Certains formulaires utilisent une librairie externe ember-cp-validations afin de faire de la validation de formulaire via des modèles ember-data.

Cette librairie est peu maintenue et n'est pas compatible avec les versions d'ember-data au dessus de 5.6.0. De plus elle est toujours en addon v1, ce qui ralenti le passage à Vite.

🛷 Proposition

Créer une classe FormValidator : permet d'utiliser un schéma Joi pour la validation de données de formulaire.

const SCHEMA = Joi.object({
  email: Joi.string().email().required(),
  password: Joi.string().required().messages({ 'string.empty': 'Password required !!!' }),
});

const validator = new FormValidator(SCHEMA);

// Validate all data of the schema
const isValid = validator.validate({ email:'[email protected]', password: '' });
console.log(isValid); // false
console.log(validator.errors); // { password: 'Password required !!!' } 

// Validate one field of the schema
const isValid = validator.validateField('email', 'hello');
console.log(isValid); // false
console.log(validator.errors.email); // "email" must be a valid email

Remplacer l'usage de ember-cp-validations par FormValidator dans :

  • Le formulaire d'édition d'un utilisateur
  • Le formulaire d'édition d'une campagne
  • Le formulaire d'édition d'une organisation
  • Le formulaire d'édition d'un centre de certification

☃️ Remarques

Suppression de la librairie ember-cp-validations, des modèles ember-data et mirage des formulaires, et des validators.

🧑‍🎄 Pour tester

Vérifier la gestion des erreurs dans les 4 formulaires suivants :

  • Le formulaire d'édition d'un utilisateur:
    • prescrit : https://admin-pr14382.review.pix.fr/users/108494
    • non prescrit : https://admin-pr14382.review.pix.fr/users/108520
  • Le formulaire d'édition d'une campagne: https://admin-pr14382.review.pix.fr/campaigns/107804/participations
  • Le formulaire d'édition d'une organisation: https://admin-pr14382.review.pix.fr/organizations/107782/team
  • Le formulaire d'édition d'un centre de certification: https://admin-pr14382.review.pix.fr/certification-centers/5000

bpetetot avatar Dec 09 '25 14:12 bpetetot

Choisir les applications à déployer :

[!IMPORTANT] N'oubliez pas de déployer l'API pour pouvoir accéder aux fronts et/ou à l’API MaDDo.

pix-bot-github avatar Dec 09 '25 14:12 pix-bot-github

️✅ There are no secrets present in this pull request anymore.

If these secrets were true positive and are still valid, we highly recommend you to revoke them. While these secrets were previously flagged, we no longer have a reference to the specific commits where they were detected. Once a secret has been leaked into a git repository, you should consider it compromised, even if it was deleted immediately. Find here more information about risks.


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

gitguardian[bot] avatar Dec 10 '25 06:12 gitguardian[bot]

:tada: This PR is included in version 5.280.0 :tada:

The release is available on GitHub release

Your semantic-release bot :package::rocket:

pix-service avatar Dec 12 '25 11:12 pix-service