Implement CRUD functionality for Articles and Tiers with enhanced API documentation
- Introduced new endpoints for creating and modifying articles (`art_add`, `art_mod`) and tiers (`third_add`, `third_mod`), allowing users to manage these entities effectively. - Updated the Articles and Tiers pages to include forms for adding and modifying records, complete with parameter tables for clear guidance on required inputs. - Enhanced the API documentation to include detailed descriptions, examples, and metadata for the new endpoints, improving usability and understanding for developers. - Created a new rule for writing conventions with French accents to ensure consistency across the project. - Updated existing documentation to reflect structural changes and added a summary table for CRUD operations. - Added tests to verify the functionality of the new features and ensure robust error handling.
This commit is contained in:
46
.cursor/rules/accents.mdc
Normal file
46
.cursor/rules/accents.mdc
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: Convention d'écriture avec accents français
|
||||
globs:
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Convention d'écriture avec accents français
|
||||
|
||||
Tous les contenus rédigés en français dans le projet doivent utiliser les accents et caractères spéciaux appropriés.
|
||||
|
||||
## Règles
|
||||
|
||||
1. **Messages d'erreur** : utiliser les accents dans tous les messages affichés à l'utilisateur.
|
||||
- Correct : `Le champ délai de paiement est obligatoire.`
|
||||
- Incorrect : `Le champ delai de paiement est obligatoire.`
|
||||
|
||||
2. **Labels et placeholders** : les libellés de formulaires, titres de sections, placeholders et textes d'aide doivent inclure les accents.
|
||||
- Correct : `Identifiant de l'article`, `Récupération de données`, `Général`
|
||||
- Incorrect : `Identifiant de l'article`, `Recuperation de donnees`, `General`
|
||||
|
||||
3. **Documentation** : le fichier `documentation/documentation_api_logistics.md` et les fichiers `memory-bank/*.md` doivent utiliser les accents.
|
||||
|
||||
4. **Commentaires PHP et PHPDoc** : les commentaires rédigés en français dans le code PHP doivent utiliser les accents.
|
||||
|
||||
5. **Vues Blade** : tous les textes visibles dans les fichiers `resources/views/**/*.blade.php` doivent utiliser les accents.
|
||||
|
||||
6. **Tests** : les descriptions de tests Pest (`it('...')`) et les messages d'assertion peuvent rester en anglais (convention Pest). Les messages d'erreur vérifiés dans les assertions doivent correspondre exactement aux messages du code source (avec accents si le code source en contient).
|
||||
|
||||
## Caractères courants
|
||||
|
||||
| Sans accent | Avec accent |
|
||||
|-------------|-------------|
|
||||
| recuperation | récupération |
|
||||
| element | élément |
|
||||
| cle | clé |
|
||||
| numero | numéro |
|
||||
| general | général |
|
||||
| reponse | réponse |
|
||||
| requete | requête |
|
||||
| metadonnees | métadonnées |
|
||||
| parametres | paramètres |
|
||||
| entite | entité |
|
||||
| echéance | échéance |
|
||||
| creé | créé |
|
||||
| modifié | modifié |
|
||||
| supprimé | supprimé |
|
||||
@@ -1,70 +1,72 @@
|
||||
# Update Documentation
|
||||
|
||||
Quand l'utilisateur dit **"update documentation"**, tu DOIS mettre a jour le fichier `documentation/documentation_api_logistics.md` en suivant cette procedure.
|
||||
Quand l'utilisateur dit **"update documentation"**, tu DOIS mettre à jour le fichier `documentation/documentation_api_logistics.md` en suivant cette procédure.
|
||||
|
||||
## Procedure de mise a jour
|
||||
## Procédure de mise à jour
|
||||
|
||||
1. **Lire les sources suivantes** (dans cet ordre) :
|
||||
- `app/Services/LogisticsService.php` : toutes les methodes publiques = endpoints disponibles. Les PHPDoc `@param` contiennent les parametres attendus.
|
||||
- `config/logistics.php` : configuration de connexion (variables d'environnement, valeurs par defaut).
|
||||
- `app/Services/LogisticsService.php` : toutes les méthodes publiques = endpoints disponibles. Les PHPDoc `@param` contiennent les paramètres attendus.
|
||||
- `config/logistics.php` : configuration de connexion (variables d'environnement, valeurs par défaut).
|
||||
- `.env` : valeurs actuelles des variables de configuration.
|
||||
- `documentation/documentation_api_logistics.md` : documentation existante a mettre a jour.
|
||||
- `documentation/documentation_api_logistics.md` : documentation existante à mettre à jour.
|
||||
- `memory-bank/techContext.md` : contexte technique (tables, types de colonnes, endpoints connus).
|
||||
|
||||
2. **Identifier les changements** :
|
||||
- Nouvelles methodes dans `LogisticsService` = nouveaux endpoints a documenter.
|
||||
- Methodes supprimees = endpoints a retirer.
|
||||
- Parametres modifies (PHPDoc `@param`) = mise a jour des tableaux de parametres.
|
||||
- Nouvelles variables d'environnement dans `config/logistics.php` = mise a jour de la section pre-requis.
|
||||
- Nouvelles méthodes dans `LogisticsService` = nouveaux endpoints à documenter.
|
||||
- Méthodes supprimées = endpoints à retirer.
|
||||
- Paramètres modifiés (PHPDoc `@param`) = mise à jour des tableaux de paramètres.
|
||||
- Nouvelles variables d'environnement dans `config/logistics.php` = mise à jour de la section pré-requis.
|
||||
|
||||
3. **Mettre a jour le fichier** en preservant strictement cette structure :
|
||||
3. **Mettre à jour le fichier** en préservant strictement cette structure :
|
||||
|
||||
```
|
||||
# Documentation API Logistics (Flex/ESI Gescom)
|
||||
Derniere mise a jour : <date du jour>
|
||||
Dernière mise à jour : <date du jour>
|
||||
|
||||
## Table des matieres
|
||||
## 1. Pre-requis
|
||||
## 2. Comment effectuer des requetes
|
||||
## 3. Structure de reponse
|
||||
## 4. Tables et colonnes disponibles
|
||||
## 5. Recuperation de donnees
|
||||
### 5.1 Structure de la base de donnees (tables_list, column_list)
|
||||
### 5.2 Articles (art_list, art_getstk)
|
||||
### 5.3 Journaux (jnl_list)
|
||||
### 5.4 Documents (document_list, document_detail, Document_GetStatusList, Document_GetUnitPriceAndVat, Document_GetDueDate, Document_GetAttachListThumbnail)
|
||||
### 5.5 Tiers (third_list, third_GetArtHistory)
|
||||
### 5.6 Divers (getserialnumber, codes_list)
|
||||
## 6. Envoi de donnees
|
||||
### 6.1 Ajout d'un document (document_add)
|
||||
### 6.2 Modification d'un document (document_mod)
|
||||
## 7. Endpoints non fonctionnels
|
||||
## 8. Relations entre entites
|
||||
## Table des matières
|
||||
## 1. Pré-requis
|
||||
## 2. Environnements d'utilisation
|
||||
## 3. Comment effectuer des requêtes
|
||||
## 4. Structure de réponse
|
||||
## 5. Tables et colonnes disponibles
|
||||
## 6. Récupération de données
|
||||
### 6.1 Structure de la base de données (tables_list, column_list)
|
||||
### 6.2 Articles (art_list, art_getstk)
|
||||
### 6.3 Journaux (jnl_list)
|
||||
### 6.4 Documents (document_list, document_detail, Document_GetStatusList, Document_GetUnitPriceAndVat, Document_GetDueDate, Document_GetAttachListThumbnail, Document_GetPDF)
|
||||
### 6.5 Tiers (third_list, third_GetArtHistory)
|
||||
### 6.6 Divers (getserialnumber, codes_list)
|
||||
## 7. Envoi de données
|
||||
### 7.1 Documents (document_add, document_mod)
|
||||
### 7.2 Articles (art_add, art_mod)
|
||||
### 7.3 Tiers (third_add, third_mod)
|
||||
### 7.4 Divers (custom_geninv_updatestock)
|
||||
## 8. Relations entre entités
|
||||
## 9. Remarques et points d'attention
|
||||
## 10. Ressources externes
|
||||
```
|
||||
|
||||
4. **Pour chaque endpoint, documenter** :
|
||||
- Description fonctionnelle (a quoi il sert).
|
||||
- Description fonctionnelle (à quoi il sert).
|
||||
- URL au format `POST /{dossier}/{endpoint}`.
|
||||
- Methode service correspondante (`LogisticsService::methode()`).
|
||||
- Tableau des parametres : nom, type, obligatoire (Oui/Non), description detaillee.
|
||||
- Exemple de requete (body JSON).
|
||||
- Exemple de reponse si disponible.
|
||||
- Méthode service correspondante (`LogisticsService::méthode()`).
|
||||
- Tableau des paramètres : nom, type, obligatoire (Oui/Non), description détaillée.
|
||||
- Métadonnées retournées (tableau).
|
||||
- Exemple de requête (body JSON).
|
||||
- Exemple de réponse succès et erreur.
|
||||
|
||||
5. **Classer les endpoints** :
|
||||
- Section 5 (Recuperation) : endpoints qui lisent des donnees (toutes les methodes sauf `documentAdd` et `documentMod`).
|
||||
- Section 6 (Envoi) : endpoints qui creent ou modifient des donnees (`documentAdd`, `documentMod`).
|
||||
- Section 7 : endpoints identifies mais non fonctionnels.
|
||||
- Section 6 (Récupération) : endpoints qui lisent des données.
|
||||
- Section 7 (Envoi) : endpoints qui créent ou modifient des données (`documentAdd`, `documentMod`, `artAdd`, `artMod`, `thirdAdd`, `thirdMod`, `customGeninvUpdatestock`).
|
||||
|
||||
6. **Mettre a jour la date** en haut du fichier (`Derniere mise a jour : <date du jour>`).
|
||||
6. **Mettre à jour la date** en haut du fichier (`Dernière mise à jour : <date du jour>`).
|
||||
|
||||
## Regles
|
||||
## Règles
|
||||
|
||||
- Ne jamais supprimer d'information existante sans raison (endpoint supprime du service).
|
||||
- Ne jamais divulguer ou ecrire des informations sensibles (cles d'API, mots de passe, identifiants de connexion, tokens, secrets ou toute autre donnee confidentielle). Utiliser des valeurs fictives ou des placeholders (ex. `votre-cle-api`, `********`, `{API_KEY}`) dans les exemples.
|
||||
- Ne jamais supprimer d'information existante sans raison (endpoint supprimé du service).
|
||||
- Ne jamais divulguer ou écrire des informations sensibles (clés d'API, mots de passe, identifiants de connexion, tokens, secrets ou toute autre donnée confidentielle). Utiliser des valeurs fictives ou des placeholders (ex. `votre-cle-api`, `********`, `{API_KEY}`) dans les exemples.
|
||||
- Ton factuel et concis, sans emojis.
|
||||
- Toujours inclure les chemins de fichiers exacts dans les references.
|
||||
- Les exemples de requete doivent utiliser des valeurs realistes mais ne contenant aucune donnee sensible.
|
||||
- La table des matieres doit refleter les sections du document.
|
||||
- Les endpoints non fonctionnels restent documentes avec le statut "Non fonctionnel" et la description du probleme.
|
||||
- Toujours inclure les chemins de fichiers exacts dans les références.
|
||||
- Les exemples de requête doivent utiliser des valeurs réalistes mais ne contenant aucune donnée sensible.
|
||||
- La table des matières doit refléter les sections du document.
|
||||
- Utiliser les accents français dans tout le contenu.
|
||||
|
||||
Reference in New Issue
Block a user