feat: add log for export api
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
"""Format conversion endpoints."""
|
||||
|
||||
import logging
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from fastapi.responses import Response
|
||||
|
||||
@@ -7,6 +9,8 @@ from app.core.dependencies import get_converter
|
||||
from app.schemas.convert import LatexToOmmlRequest, LatexToOmmlResponse, MarkdownToDocxRequest
|
||||
from app.services.converter import Converter
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -19,14 +23,25 @@ async def convert_markdown_to_docx(
|
||||
|
||||
Returns the generated DOCX file as a binary response.
|
||||
"""
|
||||
logger.info(
|
||||
"Converting markdown to DOCX, filename=%s, content_length=%d",
|
||||
request.filename,
|
||||
len(request.markdown),
|
||||
)
|
||||
try:
|
||||
docx_bytes = converter.export_to_file(request.markdown, export_type="docx")
|
||||
logger.info(
|
||||
"DOCX conversion successful, filename=%s, size=%d bytes",
|
||||
request.filename,
|
||||
len(docx_bytes),
|
||||
)
|
||||
return Response(
|
||||
content=docx_bytes,
|
||||
media_type="application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
headers={"Content-Disposition": f'attachment; filename="{request.filename}.docx"'},
|
||||
)
|
||||
except Exception as e:
|
||||
logger.exception("DOCX conversion failed, filename=%s: %s", request.filename, e)
|
||||
raise HTTPException(status_code=500, detail=f"Conversion failed: {e}")
|
||||
|
||||
|
||||
@@ -55,12 +70,17 @@ async def convert_latex_to_omml(
|
||||
```
|
||||
"""
|
||||
if not request.latex or not request.latex.strip():
|
||||
logger.warning("LaTeX to OMML request received with empty formula")
|
||||
raise HTTPException(status_code=400, detail="LaTeX formula cannot be empty")
|
||||
|
||||
logger.info("Converting LaTeX to OMML, latex=%r", request.latex)
|
||||
try:
|
||||
omml = converter.convert_to_omml(request.latex)
|
||||
logger.info("LaTeX to OMML conversion successful")
|
||||
return LatexToOmmlResponse(omml=omml)
|
||||
except ValueError as e:
|
||||
logger.warning("LaTeX to OMML conversion invalid input: %s", e)
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
||||
except RuntimeError as e:
|
||||
logger.error("LaTeX to OMML conversion runtime error: %s", e)
|
||||
raise HTTPException(status_code=503, detail=str(e))
|
||||
|
||||
Reference in New Issue
Block a user