meta données pour cette page
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| certif:procedure:usageclasseinterface [2026/04/24 13:43] – [Quelques règles génériques] nicolas | certif:procedure:usageclasseinterface [2026/04/24 17:04] (Version actuelle) – alexia | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | |{{: | ||
| + | |{{: | ||
| ====== Règles sur les classes ====== | ====== Règles sur les classes ====== | ||
| - | + | |**Suivi des modifications majeures** |04/2065 - Nicolas MARCHAND - Création| | |
| - | Version | + | |**Suivi des approbations** |Cartographie fonctionnelle| |
| + | |**Objet** |Normaliser les classes servant à mapper dans Angular les objets du back (/ de la BDD)| | ||
| + | |**Destinataires** |**- Validation des modifications : ** Chef de projet\\ | ||
| + | ====== | ||
| ===== Nommage des classes de donnée (modele) ===== | ===== Nommage des classes de donnée (modele) ===== | ||
| Ligne 16: | Ligne 21: | ||
| ==== Quelques règles génériques ==== | ==== Quelques règles génériques ==== | ||
| - | * On ne charge | + | * On ne charge |
| * 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 donc '' | * 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 donc '' | ||
| + | * Vu les problématiques à respecter la syntaxe ou privilégiera TSQLFamille[] à créer y=une classe TSQLFamilles | ||
| ==== Les fonctions « normées » correspondant au CRUD ==== | ==== Les fonctions « normées » correspondant au CRUD ==== | ||
| - | |||
| ^ Opération ^ Fonction ^ Description ^ | ^ Opération ^ Fonction ^ Description ^ | ||
| | READ | '' | | READ | '' | ||
| | CREATE / UPDATE | '' | | CREATE / UPDATE | '' | ||
| - | | DELETE | '' | + | | DELETE | '' |
| - | + | ||
| - | ===== Nommage des classes de donnée (modèle) ===== | + | |
| - | + | ||
| - | ==== Classe correspondant à une table des BDDs ==== | + | |
| - | + | ||
| - | ^ Élément ^ Règle ^ Exemple ^ | + | |
| - | | Préfixe | TSQL + nom de la table | TSQLPersonne | | + | |
| - | | Type | Classe représentant une table BDD | TSQLFamille | | + | |
| - | | Nom du fichier | record + nom de la classe | recordTSQLPersonne | | + | |
| - | | Emplacement | ngx-logeasweb-ui\src\lib\models\BDD\NomBDD\ | — | | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ==== Classe interne au front ==== | + | |
| - | + | ||
| - | ^ Règle ^ Description ^ Exemple ^ | + | |
| - | | Préfixe | Lettre **T** suivie d’un nom parlant | TPersonnePlus | | + | |
| - | | Extension | Utiliser l’héritage plutôt qu’une copie | extends TSQLPersonne | | + | |
| - | | Propriété calculée | Ajouter une méthode de calcul | getNomComplet() | | + | |
| - | | Usage unique | Utiliser une interface | Interface locale | | + | |
| - | + | ||
| - | Exemple : | + | |
| - | + | ||
| - | <code typescript> | + | |
| - | class TPersonnePlus extends TSQLPersonne { | + | |
| - | nomDeJeuneFille: | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | Exemple propriété calculée : | + | |
| - | + | ||
| - | <code typescript> | + | |
| - | getNomComplet() { | + | |
| - | return `${this.titre} ${this.prenom} ${this.nom}`; | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ==== Classes dérivées pour affichage ==== | + | |
| - | + | ||
| - | ^ Type ^ Règle ^ Exemple ^ | + | |
| - | | Nature | Interface uniquement (pas de logique) | — | | + | |
| - | | Nommage | Nom de la table + Grid | IPersonneGrid | | + | |
| - | | Utilisation | Type mis à plat pour une grille | DataGrid | | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== Les classes issues des BDDs (TSQL…) ===== | + | |
| - | + | ||
| - | ==== Quelques règles génériques ==== | + | |
| - | + | ||
| - | ^ Règle ^ Description ^ | + | |
| - | | Chargement | Toujours via les fonctions de la classe | Comportement homogène | | + | |
| - | | Couplage | Une classe ne doit pas appeler une autre classe métier | Utiliser un service | | + | |
| - | | Logique transverse | Centralisée dans un service | Vérifications croisées | | + | |
| - | + | ||
| - | Exemple interdit : | + | |
| - | + | ||
| - | < | + | |
| - | TSQLFamille appelle TSQLPersonne | + | |
| - | TSQLPersonne appelle TSQLFamille | + | |
| - | </ | + | |
| - | + | ||
| - | ⇒ À gérer dans un **service** | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== Fonctions normées correspondant au CRUD ===== | + | |
| - | + | ||
| - | ==== READ ==== | + | |
| - | + | ||
| - | Nom de la fonction : | + | |
| - | + | ||
| - | < | + | |
| - | chargeFromBDD$ | + | |
| - | </ | + | |
| - | + | ||
| - | Signature : | + | |
| - | + | ||
| - | <code typescript> | + | |
| - | static async chargeFromBDD$( | + | |
| - | filtre: TSQLPersonne = new TSQLPersonne(), | + | |
| - | base?: TBaseLoGeAs | + | |
| - | ): Promise< | + | |
| - | </ | + | |
| - | + | ||
| - | ^ Paramètre ^ Type ^ Description ^ | + | |
| - | | filtre | Objet modèle | Permet de sélectionner un sous-ensemble | | + | |
| - | | base | TBaseLoGeAs | Base alternative optionnelle | | + | |
| - | + | ||
| - | Exemple : | + | |
| - | + | ||
| - | <code typescript> | + | |
| - | this.personnes = await TSQLPersonne.chargeFromBDD$(); | + | |
| - | </ | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ==== Utilisation du filtre ==== | + | |
| - | + | ||
| - | <code typescript> | + | |
| - | const filtre = new TSQLPersonne({ | + | |
| - | Codepostal: " | + | |
| - | }); | + | |
| - | + | ||
| - | this.personnes = await TSQLPersonne.chargeFromBDD$(filtre); | + | |
| - | + | ||
| - | Résultat attendu : | + | |
| - | + | ||
| - | * uniquement les personnes ayant le code postal 31800 | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ==== CREATE / UPDATE ==== | + | |
| - | + | ||
| - | Nom de la fonction : | + | |
| - | + | ||
| - | < | + | |
| - | sauveToBDD$ | + | |
| - | </ | + | |
| - | + | ||
| - | Signature : | + | |
| - | + | ||
| - | <code typescript> | + | |
| - | async sauveToBDD$(base?: | + | |
| - | </ | + | |
| - | + | ||
| - | ^ Cas ^ Condition ^ Action ^ | + | |
| - | | Création | ID = 0 | Insertion en base | | + | |
| - | | Mise à jour | ID ≠ 0 | Update en base | | + | |
| - | | Préparation | Aucune | Gérée par la méthode | | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ==== DELETE ==== | + | |
| - | + | ||
| - | Nom de la fonction : | + | |
| - | + | ||
| - | < | + | |
| - | effaceToBDD$ | + | |
| - | </ | + | |
| - | + | ||
| - | Signature : | + | |
| - | + | ||
| - | <code typescript> | + | |
| - | async effaceToBDD$( | + | |
| - | ID: number, | + | |
| - | base?: TBaseLoGeAs | + | |
| - | ) | + | |
| - | </ | + | |
| - | + | ||
| - | ^ Paramètre ^ Type ^ Description ^ | + | |
| - | | ID | number | Identifiant de l' | + | |
| - | | base | TBaseLoGeAs | Base optionnelle | | + | |
| - | + | ||
| - | --- | + | |
| - | ===== Tableau récapitulatif du CRUD ===== | + | ==== Les fonctions « normées » à usage interne de la classe (" |
| + | ^Nom de la fonction^Usage^ | ||
| + | |protected override corrigeDataFromBDD()|Appelé sur chaque enregistrement lors du chargement depuis le back, via la procédure | ||
| + | |protected override async prepareDataToBDD()|Appelé par la fonction sauveToBDD$ elle permet de mettre les format angular au format attendu par le back| | ||
| - | ^ Opération | + | ==== Les fonctions « normées » à usage public ==== |
| - | | READ | chargeFromBDD$ | static async | Charge une liste d' | + | ^Nom de la fonction^Usage^ |
| - | | CREATE | sauveToBDD$ | async | Crée un objet | | + | |override toGrid(): |
| - | | UPDATE | sauveToBDD$ | async | Met à jour un objet | | + | |static toGrids(liste: |
| - | | DELETE | effaceToBDD$ | async | Supprime un objet | | + | |
| + | ==== Les fonctions spécifique à la classe ==== | ||
| + | Dépends de chaque classe voir la classe | ||