Endpoint /api/imprimer-fichier : impression par upload (pour galerie en ligne)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-09-25 00:24:47 +02:00
parent 2f32cf2f38
commit e6a0b268ff

View File

@@ -1618,6 +1618,28 @@ async def api_imprimer(donnees: dict):
return resultat
@app.post("/api/imprimer-fichier")
async def api_imprimer_fichier(fichier: UploadFile = File(...), copies: int = 1, format_papier: str | None = None):
"""Impression d'un fichier uploadé (utilisé par la galerie en ligne)."""
config = charger_config()
copies_max = config.get("impression", {}).get("copies_max", 5)
copies = max(1, min(copies, copies_max))
tmp = DOSSIER_EXPORTS / f"_galerie_{fichier.filename}"
try:
data = await fichier.read()
tmp.write_bytes(data)
resultat = imprimer(tmp, copies=copies, format_papier=format_papier)
except Exception as e:
log.error(f"Erreur impression fichier uploade : {e}")
_log_impression(fichier.filename, copies, format_papier, False, str(e))
return {"succes": False, "erreur": "erreur_impression", "message": str(e)}
finally:
tmp.unlink(missing_ok=True)
succes = resultat.get("succes", False)
_log_impression(fichier.filename, copies, format_papier, succes, resultat.get("job", ""))
return resultat
# --- API Consommables ---
@app.get("/api/consommables")