- 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.
3.7 KiB
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.0laravel/framework: ^12.0livewire/livewire: ^4.0livewire/flux: ^2.9.0laravel/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