From 4867f4dc225b3611e2d68f5fef355f9a156c8d5e Mon Sep 17 00:00:00 2001 From: Fanilo-Nantenaina Date: Sat, 6 Dec 2025 12:15:36 +0300 Subject: [PATCH] Cache problem --- api.py | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/api.py b/api.py index 6b5d2cb..f5951f2 100644 --- a/api.py +++ b/api.py @@ -2231,7 +2231,88 @@ async def tester_persistance_utilisateur(session: AsyncSession = Depends(get_ses "traceback": str(e.__class__.__name__), } +@app.get("/debug/fournisseurs/cache", tags=["Debug"]) +async def debug_cache_fournisseurs(): + """ + 🔍 Debug : État du cache côté VPS Linux + """ + try: + # Appeler la gateway Windows pour récupérer l'info cache + cache_info = sage_client.get_cache_info() + + # Tenter de lister les fournisseurs + try: + fournisseurs = sage_client.lister_fournisseurs(filtre="") + nb_fournisseurs = len(fournisseurs) if fournisseurs else 0 + exemple = fournisseurs[:3] if fournisseurs else [] + except Exception as e: + nb_fournisseurs = -1 + exemple = [] + error = str(e) + + return { + "success": True, + "cache_info_windows": cache_info, + "test_liste_fournisseurs": { + "nb_fournisseurs": nb_fournisseurs, + "exemples": exemple, + "erreur": error if nb_fournisseurs == -1 else None + }, + "diagnostic": { + "gateway_accessible": cache_info is not None, + "cache_fournisseurs_existe": "fournisseurs" in cache_info if cache_info else False, + "probleme_probable": ( + "Cache fournisseurs non initialisé côté Windows" + if cache_info and "fournisseurs" not in cache_info + else "OK" if nb_fournisseurs > 0 + else "Erreur lors de la récupération" + ) + } + } + + except Exception as e: + logger.error(f"❌ Erreur debug cache: {e}", exc_info=True) + raise HTTPException(500, str(e)) + +@app.post("/debug/fournisseurs/force-refresh", tags=["Debug"]) +async def force_refresh_fournisseurs(): + """ + 🔄 Force le refresh du cache fournisseurs côté Windows + """ + try: + # Appeler la gateway Windows pour forcer le refresh + resultat = sage_client.refresh_cache() + + # Attendre 2 secondes + import time + time.sleep(2) + + # Récupérer le cache info après refresh + cache_info = sage_client.get_cache_info() + + # Tester la liste + fournisseurs = sage_client.lister_fournisseurs(filtre="") + nb_fournisseurs = len(fournisseurs) if fournisseurs else 0 + + return { + "success": True, + "refresh_result": resultat, + "cache_apres_refresh": cache_info, + "nb_fournisseurs_maintenant": nb_fournisseurs, + "exemples": fournisseurs[:3] if fournisseurs else [], + "message": ( + f"✅ Refresh OK : {nb_fournisseurs} fournisseurs disponibles" + if nb_fournisseurs > 0 + else "❌ Problème : aucun fournisseur après refresh" + ) + } + + except Exception as e: + logger.error(f"❌ Erreur force refresh: {e}", exc_info=True) + raise HTTPException(500, str(e)) + + # ===================================================== # LANCEMENT # =====================================================