Files
logisticsAPI/memory-bank/projectbrief.md
Marvin bb1bbc2904 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.
2026-02-23 10:15:17 +01:00

2.5 KiB

Project Brief

Dernière mise à jour : 2026-02-23

Vision

Application Laravel de test dont l'objectif est de comprendre le fonctionnement de l'API Logistics (Flex/ESI Gescom) et d'en produire une documentation complète et compréhensible.

Objectifs

  1. Comprendre le fonctionnement de l'API Logistics.
  2. Créer une application simple permettant d'envoyer et de récupérer des données vers/depuis l'API.
  3. Produire une documentation complète et compréhensible de l'API.

Périmètre fonctionnel

  • Dashboard Filament v5 accessible sans authentification sur /admin.
  • Pages de consultation et d'envoi pour les principales entités de l'API : tables, articles, documents, journaux, tiers, divers.
  • Toggle Lecture/Ecriture sur chaque page entité pour basculer entre les endpoints de récupération et d'envoi de données.
  • Page de documentation intégrée avec rendu stylisé du markdown et export PDF.
  • Formulaires de recherche et d'envoi paramétrables pour chaque endpoint (19 au total).
  • Affichage des résultats sous forme de tableaux structurés et de blocs JSON formatés.
  • Système de design unifié avec composants Blade réutilisables (x-logistics.*).
  • Traçage des requêtes effectuées dans une table api_request_logs.
  • Gestion robuste des erreurs API (timeout, retry, messages utilisateur en français, traduction avec explications via ApiErrorTranslator).
  • Validation des champs obligatoires avant chaque appel API avec messages en français.
  • Distinction "jamais recherché" / "recherché sans résultat" via propriétés de tracking.
  • Avertissements visuels pour les endpoints non fonctionnels (Document_GetPDF, custom_geninv_updatestock).

Contraintes

  • Pas d'authentification sur le dashboard (projet de test interne).
  • L'API Logistics est hébergée sur le serveur TSE-10-TEST (http://tse-10-test.esi.local).
  • Le serveur API est accessible via le réseau interne.
  • Toutes les requêtes API sont en POST et nécessitent un header X-API-KEY.
  • Le nom du dossier dans les URLs de l'API doit être en minuscules.

Convention d'écriture

Tous les contenus rédigés en français (documentation, memory bank, règles Cursor, commentaires) doivent utiliser les accents appropriés.

Ressources