"""Markdown to DOCX conversion endpoint.""" from fastapi import APIRouter, Depends, HTTPException from fastapi.responses import Response from app.core.dependencies import get_converter from app.schemas.convert import MarkdownToDocxRequest from app.services.converter import Converter router = APIRouter() @router.post("/file") async def convert_markdown_to_docx( request: MarkdownToDocxRequest, converter: Converter = Depends(get_converter), ) -> Response: """Convert markdown content to DOCX file. Returns the generated DOCX file as a binary response. """ try: docx_bytes = converter.export_to_file(request.markdown, export_type="docx") 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: raise HTTPException(status_code=500, detail=f"Conversion failed: {e}")