fixed proxy
This commit is contained in:
@@ -32,9 +32,11 @@ from app.schemas import (
|
||||
LlmMessageOut,
|
||||
LoginRequest,
|
||||
LoginResponse,
|
||||
PreviewPdfRequest,
|
||||
ProjectCreate,
|
||||
ProjectOut,
|
||||
ProjectUpdate,
|
||||
ProtectPagesRequest,
|
||||
TableRowsPatch,
|
||||
TableRowsResponse,
|
||||
TableSettingsUpdate,
|
||||
@@ -42,7 +44,8 @@ from app.schemas import (
|
||||
from app.services.designators import DEFAULT_MAPPINGS
|
||||
from app.services.excel_export import export_xlsx
|
||||
from app.services.llm import chat_edit_table, estimate_chat_context
|
||||
from app.services.pdf_export import export_pdf
|
||||
from app.services.pdf_export import export_pdf, export_pdf_page
|
||||
from app.services.page_breaks import protect_page_breaks
|
||||
from app.services.project_service import get_project_full, ingest_zip, project_dir
|
||||
from app.services.project_settings import (
|
||||
TABLE_SETTINGS_META,
|
||||
@@ -512,6 +515,53 @@ def generate(
|
||||
return TableRowsResponse(table_type=table_type, rows=rows)
|
||||
|
||||
|
||||
@secured.post("/projects/{project_id}/tables/{table_type}/protect-pages", response_model=TableRowsResponse)
|
||||
def protect_table_pages(
|
||||
project_id: int,
|
||||
table_type: str,
|
||||
body: ProtectPagesRequest | None = None,
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
_get_project(db, project_id)
|
||||
if table_type not in TABLE_TYPES:
|
||||
raise HTTPException(400, "Unknown table type")
|
||||
body = body or ProtectPagesRequest()
|
||||
source = body.rows if body.rows is not None else get_rows(db, project_id, table_type)
|
||||
protected = protect_page_breaks(source, table_type)
|
||||
return TableRowsResponse(table_type=table_type, rows=protected)
|
||||
|
||||
|
||||
@secured.post("/projects/{project_id}/preview-pdf")
|
||||
def preview_pdf(project_id: int, body: PreviewPdfRequest, db: Session = Depends(get_db)):
|
||||
project = _get_project(db, project_id)
|
||||
if body.table_type not in TABLE_TYPES:
|
||||
raise HTTPException(400, "Unknown table type")
|
||||
rows = body.rows if body.rows is not None else get_rows(db, project_id, body.table_type)
|
||||
inscriptions = get_inscriptions(db, project_id)
|
||||
params = get_project_params_map(db, project_id)
|
||||
resolved_inscriptions = resolve_inscriptions(inscriptions, params)
|
||||
try:
|
||||
stretch = get_font_stretch(db, project_id, body.table_type)
|
||||
result = export_pdf_page(
|
||||
body.table_type,
|
||||
rows,
|
||||
page=body.page,
|
||||
inscriptions=resolved_inscriptions,
|
||||
font_stretch=stretch,
|
||||
)
|
||||
except ValueError as e:
|
||||
raise HTTPException(400, str(e)) from e
|
||||
return Response(
|
||||
content=result.data,
|
||||
media_type="application/pdf",
|
||||
headers={
|
||||
"X-Total-Pages": str(result.total_pages),
|
||||
"X-Page": str(result.page),
|
||||
"Content-Disposition": f'inline; filename="{project.name}_{body.table_type}_p{result.page}.pdf"',
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@secured.post("/projects/{project_id}/export")
|
||||
def export_document(project_id: int, body: ExportRequest, db: Session = Depends(get_db)):
|
||||
project = _get_project(db, project_id)
|
||||
|
||||
Reference in New Issue
Block a user