meta données pour cette page
Ceci est une ancienne révision du document !
Règles sur les classes
Version 04-2023
Nommage des classes de donnée (modele)
Classe correspondant à
| Correspondance | Règle de nommage |
|---|---|
| une table des BDDs | Dans ce cas le nom doit être celui de la classe pascal. Soit TSQL + nom de la table dans la base. Exemples : TSQLPersonne, TSQLFamille … Pour facilité le fichier s'appelle record + nom de la classe (a l'image du back). Il est stocké dans ngx-logeasweb-ui\src\lib\models\BDD\Nom bdd\ |
| à une classe interne au front | On préfixe le nom de la lettre T suivi d'un nom parlant. NB : on ne crée pas une classe copie d'une classe TSQL, si on a besoin d'ajouter des éléments on utilise l'héritage (extends) Exemple : TPersonnePlus extends TSQLPersonne { nomDeJeuneFille : string …} ou on ajoute une propriété à la classe de base calculée Exemple : getNomComplet(){return `${this.titre} ${this.prenom} ${this.nom}`} Si la classe est à usage unique du composant on pourra utiliser une Interface |
| classes dérivées pour affichage | En fait il ne s'agit pas de classe mais d'interface (pas de fonction de traitement). Le nommage se fait sur le nom de la table plus Grid Exemple : IPersonneGrid corresponds au type TSQLPersonne mis à plat pour usage dans la grille |
Les classes issues des BDDs (TSQL…)
Quelques règles génériques
- On ne charge les données depuis le back directement depuis le code mais uniquement au travers des fonctions de la classe afin d'avoir des comportements homogènes
- Une classe NE DOIT PAS APPELER une autre classe de typage, si c'est le cas c'est le service qui doit le faire.
Exemple : pour effacer une famille il faut vérifier les personnes donc on devrait importer TSQPersonne dans recordFamille et réciproquement — on aurait doncTSQLFamillequi appelle une méthode deTSQLPersonneet réciproquement ⇒ à mettre dans un service.
Les fonctions « normées » correspondant au CRUD
| Opération | Fonction | Description |
|---|---|---|
| READ | chargeFromBDD$ | static async chargeFromBDD$(filtre:TSQLPersonne=new TSQLPersonne(), base?:TBaseLoGeAs) : Promise<TSQLPersonne[]> C'est la procédure qui doit se charger de toutes les transformations nécessaires après la réception (appel de la fonction générique mapArrayTo qui appelle corrigeDataFromBDD). static permet d'appeler la fonction sans instance de la classe. Exemple : this.personnes = await TSQLPersonne.chargeFromBDD$(); Le filtre permet de demander à la BDD un sous-ensemble de la table. Exemple : const filtre = new TSQLPersonne({Codepostal: “31800”}) ; this.personnes = await TSQLPersonne.chargeFromBDD$(filtre); → on ne devrait avoir que les personnes ayant un codepostal = 31800 (A TESTER) base peut être laissé vide si on utilise la base chargée dans DG, sinon il faut bien sûr l'indiquer (possibilité de charger une deuxième base) |
| CREATE / UPDATE | sauveToBDD$ | async sauveToBDD$(base?:TbaseLoGeAs) Permet de créer (ID=0) ou de mettre à jour l'objet instancié dans la base de données. Aucune préparation ne doit être faite avant, c'est la procédure qui s'en charge. base peut être laissé vide si on utilise la base chargée dans DG, sinon il faut bien sûr l'indiquer (possibilité de charger une deuxième base) |
| DELETE | effaceToBDD$ | async effaceToBDD$(ID:number, base?:TbaseLoGeAs) |