Files
logisticsAPI/memory-bank/techContext.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.7 KiB

Tech Context

Derniere mise a jour : 2026-02-20

Stack technique

Composant Version Role
PHP 8.4 Langage serveur
Laravel 12 Framework applicatif
Filament 5.0 Panel admin / dashboard
Livewire 4 Composants reactifs
Flux UI Free 2.9+ Composants UI Livewire
Fortify 1.30+ Authentification (existant, non utilise par Filament)
Pest 4.4+ Framework de tests
MySQL - Base de donnees
Vite - Bundler frontend
Tailwind CSS 4 Framework CSS

Dependances principales (composer.json)

  • filament/filament: ^5.0
  • laravel/framework: ^12.0
  • livewire/livewire: ^4.0
  • livewire/flux: ^2.9.0
  • laravel/fortify: ^1.30

Configuration

Variables d'environnement specifiques

LOGISTICS_API_BASE_URL=http://tse-10-test.esiweb.pro
LOGISTICS_API_KEY=<cle API>
LOGISTICS_API_FOLDER=esigescom
LOGISTICS_API_TIMEOUT=30
LOGISTICS_API_CONNECT_TIMEOUT=10
LOGISTICS_API_RETRY_TIMES=3
LOGISTICS_API_RETRY_SLEEP_MS=500

Fichier de config : config/logistics.php

Cle de config Variable .env Defaut Description
logistics.base_url LOGISTICS_API_BASE_URL - URL de base de l'API
logistics.api_key LOGISTICS_API_KEY - Cle d'authentification
logistics.folder LOGISTICS_API_FOLDER - Dossier dans l'URL
logistics.timeout LOGISTICS_API_TIMEOUT 30 Timeout total de la requete (secondes)
logistics.connect_timeout LOGISTICS_API_CONNECT_TIMEOUT 10 Timeout de connexion (secondes)
logistics.retry.times LOGISTICS_API_RETRY_TIMES 3 Nombre de tentatives en cas d'echec de connexion
logistics.retry.sleep_ms LOGISTICS_API_RETRY_SLEEP_MS 500 Delai entre les tentatives (ms)

Base de donnees

  • Connexion : MySQL
  • Base : logistics
  • Configuration dans .env : DB_CONNECTION=mysql

API Logistics

Connexion

  • Serveur : TSE-10-TEST (reseau prive, accessible uniquement via Bureau a distance / RDP)
  • Base URL : http://tse-10-test.esiweb.pro
  • Dossier : esigescom (minuscules obligatoires)
  • Authentification : Header X-API-KEY
  • Methode : POST pour tous les endpoints
  • Port HTTP : 5186 / Port HTTPS : 7126

Structure de reponse

{
    "data": "<resultat>",
    "metadata": { "rowcount": 0, "issuccess": true },
    "error": "<message d'erreur ou null>"
}

Endpoints

Endpoint Description Parametres principaux
tables_list Liste des tables -
column_list/{table} Colonnes d'une table table (URL)
art_list Liste d'articles select, results, search, barcode
art_getstk Stock d'un article ARTID
jnl_list Liste des journaux select, results, TYPE
document_list Liste des documents select, thirdid
document_detail Detail d'un document jnl, number
document_add Ajout d'un document ThirdId, Date, Artid[], Qty[], Saleprice[], JNL, ...
document_mod Modification d'un document number, Thirdid, Artid[], Qty[], Saleprice[], JNL, ...
Document_GetStatusList Statuts d'un journal jnl
Document_GetUnitPriceAndVat Prix et TVA ARTID, QTY, JNL, THIRDID, DATE
Document_GetDueDate Echeance paydelay, date
Document_GetAttachListThumbnail Miniatures annexes JNL, NUMBER
third_list Liste des tiers select, results, search
third_GetArtHistory Historique articles tiers thirdid
getserialnumber Numero de serie -
codes_list Donnees par code code

Tables accessibles

art, attach, barcode, category, codes, cust, docdet, dochead, docpay, file, hist, incodes, jnl, pers, price, stk