Files
logisticsAPI/memory-bank/activeContext.md
Marvin 4aef33f270 Implement robust error handling and configuration for Logistics API interactions
- Introduced `LogisticsApiException` to handle connection and request errors with user-friendly messages in French.
- Updated `LogisticsService` to include configurable timeout, connection timeout, retry attempts, and sleep duration for retries.
- Enhanced error handling in Filament pages to catch `LogisticsApiException` and provide clear feedback to users.
- Updated `.env` and `config/logistics.php` to support new configuration options.
- Added logging for failed API requests in `api_request_logs`.
- Created comprehensive API documentation for Logistics endpoints.
2026-02-20 10:06:04 +01:00

3.0 KiB

Active Context

Derniere mise a jour : 2026-02-20

Travail en cours

Aucun travail en cours. Les ameliorations de robustesse du service API sont terminees.

Decisions recentes

  • Filament v5 sans authentification : Le AdminPanelProvider a ete configure sans ->login() et sans authMiddleware pour permettre un acces libre au dashboard.
  • Pages personnalisees plutot que Resources : L'application interroge une API externe, il n'y a pas de modeles Eloquent a gerer en CRUD. Les pages Filament utilisent des vues Blade avec des formulaires Livewire.
  • MySQL au lieu de SQLite : Choix de l'utilisateur pour la base de donnees.
  • LogisticsService : Toutes les interactions avec l'API sont centralisees dans un seul service pour faciliter la maintenance et le tracage.
  • Heroicon enum : Filament v5 impose l'utilisation de BackedEnum pour $navigationIcon au lieu de strings.
  • $view non-static : Filament v5 a change $view de static a instance property.
  • Timeout et retry configurables (2026-02-20) : Les parametres timeout, connect_timeout, retry.times et retry.sleep_ms sont desormais dans config/logistics.php et pilotes par des variables .env. Le retry ne se declenche que sur les ConnectionException.
  • LogisticsApiException (2026-02-20) : Exception dediee creee pour distinguer les erreurs de connexion (API injoignable) des erreurs de requete generiques. Messages en francais.
  • Logging des echecs (2026-02-20) : Les requetes echouees sont desormais aussi enregistrees dans api_request_logs avec response_status = 0.
  • Contrainte reseau (2026-02-20) : Le serveur API tse-10-test.esiweb.pro est sur un reseau prive, accessible uniquement via Bureau a distance (RDP). L'application locale ne peut pas joindre l'API sans tunnel ou deploiement sur le reseau distant.

Changements importants (2026-02-20)

  • LogisticsService mis a jour : timeout, connectTimeout, retry, gestion d'erreur avec LogisticsApiException.
  • LogisticsApiException creee dans app/Exceptions/.
  • config/logistics.php etendu avec timeout et retry.
  • .env et .env.example completes avec les nouvelles variables.
  • Les 5 pages Filament mises a jour pour attraper LogisticsApiException.
  • Tests passes de 8 a 12 (4 nouveaux tests pour timeout, exception, logging, contexte).

Historique (2026-02-19)

  • Installation de Filament v5.0.0 (31 packages ajoutes).
  • 5 pages Filament creees : TablesExplorer, Articles, Documents, Journaux, Tiers.
  • LogisticsService cree avec 17 endpoints.
  • Migration api_request_logs creee.
  • 8 tests Pest ecrits et valides.

Prochaines etapes

  • Deployer l'application sur le reseau distant (serveur accessible via RDP) ou mettre en place un tunnel SSH/VPN pour que l'application puisse joindre l'API.
  • Tester le dashboard avec de vraies donnees API une fois la connectivite reseau resolue.
  • Eventuellement : ajouter des pages pour les endpoints d'ecriture (document_add, document_mod).
  • Eventuellement : ameliorer l'affichage des resultats (pagination, formatage).