mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-19 05:06:56 +02:00
Serveur Rust : portage du module FF Nancy (base miroir, API, routes, actions, pages)
- ff::pg : portage complet de pg-ff-client.ts (mêmes requêtes SQL, fragments dynamiques via QueryBuilder, lectures tolérantes, caches process de la colonne parent de nomenclature et du lien mvtart → fournisseur). - ff::api : client de l'API FF Nancy (URL résolue Paramètres → env → défaut, mémorisée 30 s ; délai FF_API_TIMEOUT_MS), pagination, mensuel, référentiel, commandes, normalisation du statut de synchro. - ff::cache : getFournisseursCached / getDerniereReceptionCached. - ff::diagnostic : diagnostiquer_api_ff (DNS, refus, délai, code HTTP). - Routes /api/ff-status, /api/diag, /api/diag/stock-fournisseur, /api/test-db, /api/commandes-auto ; actions de la Grille et du cadencier ; pages dashboard, analytics, hit-parade, stock-negatif, commandes-auto, publicites. - Test d'intégration (FF_TEST_DATABASE_URL) avec fausse API FF : toutes les requêtes et tous les appels HTTP joués sur une base de test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LG2LLJuswrrTTPKJmunEVf
This commit is contained in:
10 files changed
+5547
-10
No files matched your search
+37
-3
@@ -1,21 +1,55 @@
|
||||
//! Module `ff` — données FF Nancy (base miroir PostgreSQL et API REST) — à porter.
|
||||
//! Module `ff` — données FF Nancy : base miroir PostgreSQL (`pg`), API REST
|
||||
//! (`api`), lectures partagées en cache (`cache`), diagnostic de l'API
|
||||
//! (`diagnostic`), routes, actions et données de pages.
|
||||
|
||||
pub mod actions;
|
||||
pub mod api;
|
||||
pub mod cache;
|
||||
pub mod diagnostic;
|
||||
pub mod js;
|
||||
pub mod pages;
|
||||
pub mod pg;
|
||||
pub mod routes;
|
||||
|
||||
#[cfg(test)]
|
||||
mod fixture_tests;
|
||||
|
||||
use crate::handler;
|
||||
use crate::rpc::Handler;
|
||||
use axum::routing::get;
|
||||
use axum::Router;
|
||||
|
||||
/// Routes HTTP du module.
|
||||
pub fn router() -> Router {
|
||||
Router::new()
|
||||
.route("/api/ff-status", get(routes::ff_status))
|
||||
.route("/api/diag", get(routes::diag))
|
||||
.route("/api/diag/stock-fournisseur", get(routes::diag_stock_fournisseur))
|
||||
.route("/api/test-db", get(routes::test_db))
|
||||
.route("/api/commandes-auto", get(routes::commandes_auto))
|
||||
}
|
||||
|
||||
/// Actions (`POST /api/actions/{nom}`) du module.
|
||||
pub fn actions() -> Vec<(&'static str, Handler)> {
|
||||
vec![]
|
||||
vec![
|
||||
("getFournisseurs", handler!(actions::get_fournisseurs)),
|
||||
("getMagasins", handler!(actions::get_magasins)),
|
||||
("getFournisseursPourCadence", handler!(actions::get_fournisseurs_pour_cadence)),
|
||||
("listCadences", handler!(actions::list_cadences)),
|
||||
("upsertCadence", handler!(actions::upsert_cadence)),
|
||||
("toggleCadence", handler!(actions::toggle_cadence)),
|
||||
("removeCadence", handler!(actions::remove_cadence)),
|
||||
]
|
||||
}
|
||||
|
||||
/// Données de pages (`GET /api/pages/{nom}`) du module.
|
||||
pub fn pages() -> Vec<(&'static str, Handler)> {
|
||||
vec![]
|
||||
vec![
|
||||
("dashboard", handler!(pages::page_dashboard)),
|
||||
("analytics", handler!(pages::page_analytics)),
|
||||
("hit-parade", handler!(pages::page_hit_parade)),
|
||||
("stock-negatif", handler!(pages::page_stock_negatif)),
|
||||
("commandes-auto", handler!(pages::page_commandes_auto)),
|
||||
("publicites", handler!(pages::page_publicites)),
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user