Refactor error handling and enhance API interactions across Filament pages
- Introduced `ApiErrorTranslator` to normalize and translate API error messages, providing clearer feedback in French. - Updated all Filament pages (Articles, Documents, Divers, Journaux, Tiers, TablesExplorer) to utilize the new error translation mechanism, improving user experience during API interactions. - Added validation for required fields before API calls, ensuring users receive immediate feedback when mandatory inputs are missing. - Implemented tracking properties to distinguish between "never searched" and "searched without results," enhancing the user interface. - Removed the obsolete `$results` property from the Articles page and added a new `$barcode` property to align with API requirements. - Updated documentation to reflect changes in API behavior and error handling, including new metadata returned by the `art_list` endpoint. - Added new tests to verify the functionality of the barcode handling and validation logic.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Progress
|
||||
|
||||
Dernière mise à jour : 2026-02-21
|
||||
Dernière mise à jour : 2026-02-23
|
||||
|
||||
## Ce qui fonctionne
|
||||
|
||||
@@ -35,6 +35,20 @@ Dernière mise à jour : 2026-02-21
|
||||
- [x] `README.md` créé
|
||||
- [x] Formatage Pint validé
|
||||
- [x] CI GitHub Actions (lint + tests)
|
||||
- [x] `ApiErrorTranslator` créé (`app/Support/ApiErrorTranslator.php`) : normalisation et traduction des erreurs API
|
||||
- [x] Composant `error-banner` amélioré (supporte `nl2br` pour les explications)
|
||||
- [x] Composant `json-block` amélioré (prop `$searched` + état vide)
|
||||
- [x] Badge de comptage corrigé (`count($data)` au lieu de `$metadata['rowcount']`)
|
||||
- [x] Validation des champs obligatoires sur toutes les pages API (messages en français)
|
||||
- [x] Propriétés de tracking (`$hasSearched`, etc.) sur toutes les pages
|
||||
- [x] `ApiErrorTranslator` intégré dans toutes les pages API (Articles, Documents, Divers, Journaux, Tiers, TablesExplorer)
|
||||
- [x] 4 nouveaux fichiers de tests : ArticlesPageTest, JournauxPageTest, TiersPageTest, ApiErrorTranslatorTest
|
||||
- [x] Tests existants mis à jour (DiversPageTest, DocumentsPageTest) avec validation et tracking
|
||||
- [x] Investigation paramètre `results` : sans effet sur `art_list` (5 max) et `third_list` (10 max), limite fixe côté serveur
|
||||
- [x] Investigation paramètre `barcode` : sans effet observable sur `art_list`, `search` reste obligatoire
|
||||
- [x] Page Articles : `$results` supprimé, `$barcode` ajouté, formulaire mis à jour
|
||||
- [x] Documentation `art_list` et `third_list` corrigée (métadonnées réelles, paramètres inefficaces documentés)
|
||||
- [x] 2 nouveaux tests barcode dans ArticlesPageTest (envoi quand renseigné, omission quand vide)
|
||||
|
||||
## Ce qui reste à faire
|
||||
|
||||
@@ -48,13 +62,16 @@ Dernière mise à jour : 2026-02-21
|
||||
- Le test `FilamentDashboardTest > it displays project statistics` échoue car le dashboard ne contient pas la section "Endpoints API" / "Tables accessibles" / "Pages Filament" / "Tests Pest". Le test a été créé avant la refonte du dashboard.
|
||||
- L'erreur `SQLSTATE[HY000] [1049] Unknown database` peut apparaître lors de `composer update` si la base n'est pas encore créée (script `boost:update`). Sans impact une fois la base créée.
|
||||
- L'API retourne chaque colonne en double dans `column_list`. Le `TablesExplorer` déduplique côté client.
|
||||
- Le paramètre `results` n'a aucun effet sur `art_list` (toujours 5 max) ni sur `third_list` (toujours 10 max). Limite fixe côté serveur.
|
||||
- Le paramètre `barcode` n'a aucun effet observable sur `art_list`. Le paramètre `search` reste obligatoire même avec `barcode`.
|
||||
|
||||
## Métriques
|
||||
|
||||
- Tests : 84 passent, 1 en échec pré-existant (205 assertions)
|
||||
- Tests : 124 passent, 1 en échec pré-existant
|
||||
- Pages Filament : 7 (Documentation, TablesExplorer, Articles, Documents, Journaux, Tiers, Divers)
|
||||
- Composants Blade design system : 10
|
||||
- Endpoints API couverts par LogisticsService : 19
|
||||
- Endpoints accessibles depuis l'interface : 19 (dont 2 non fonctionnels)
|
||||
- Migrations : 5 (users, cache, jobs, two_factor, api_request_logs)
|
||||
- Règles Cursor : 4 (laravel-boost, memory-bank, design-system, update-documentation)
|
||||
- Classes support : 1 (ApiErrorTranslator)
|
||||
|
||||
Reference in New Issue
Block a user