feat: parse docx blocks during upload
This commit is contained in:
@@ -2,7 +2,8 @@ from fastapi import APIRouter, Depends, File, Form, HTTPException, UploadFile
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from ..database import get_db
|
||||
from ..services.template_service import create_template_record, store_template_file
|
||||
from ..services.doc_parser import parse_document
|
||||
from ..services.template_service import create_template_record, save_template_blocks, store_template_file
|
||||
|
||||
|
||||
router = APIRouter(prefix="/api/templates", tags=["templates"])
|
||||
@@ -17,8 +18,10 @@ def upload_template(
|
||||
):
|
||||
"""上传 Word 模板并创建模板记录。"""
|
||||
try:
|
||||
stored_path, _ = store_template_file(file)
|
||||
stored_path, content = store_template_file(file)
|
||||
blocks = parse_document(content)
|
||||
template = create_template_record(db, name=name, file_path=stored_path, type=type)
|
||||
save_template_blocks(db, template.id, blocks)
|
||||
except ValueError as exc:
|
||||
raise HTTPException(status_code=400, detail=str(exc)) from exc
|
||||
except Exception as exc:
|
||||
@@ -29,6 +32,7 @@ def upload_template(
|
||||
"data": {
|
||||
"template_id": template.id,
|
||||
"name": template.name,
|
||||
"block_count": len(blocks),
|
||||
"status": "uploaded",
|
||||
},
|
||||
"message": "ok",
|
||||
|
||||
Reference in New Issue
Block a user