feat: add template upload endpoint

This commit is contained in:
zwt13703
2026-07-01 20:27:15 +08:00
parent beec8cf5bb
commit 95c507536a
6 changed files with 82 additions and 15 deletions
+35
View File
@@ -0,0 +1,35 @@
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
router = APIRouter(prefix="/api/templates", tags=["templates"])
@router.post("/upload")
def upload_template(
file: UploadFile = File(...),
name: str = Form(...),
type: str = Form("report"),
db: Session = Depends(get_db),
):
"""上传 Word 模板并创建模板记录。"""
try:
stored_path, _ = store_template_file(file)
template = create_template_record(db, name=name, file_path=stored_path, type=type)
except ValueError as exc:
raise HTTPException(status_code=400, detail=str(exc)) from exc
except Exception as exc:
db.rollback()
raise HTTPException(status_code=500, detail="模板上传失败") from exc
return {
"data": {
"template_id": template.id,
"name": template.name,
"status": "uploaded",
},
"message": "ok",
}