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:
@@ -1618,6 +1618,28 @@ async def api_imprimer(donnees: dict):
|
|||||||
return resultat
|
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 ---
|
# --- API Consommables ---
|
||||||
|
|
||||||
@app.get("/api/consommables")
|
@app.get("/api/consommables")
|
||||||
|
|||||||
Reference in New Issue
Block a user