prepare fastapi root layout for server deployment
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.response import ApiResponse, ok
|
||||
from app.core.user_context import UserContext, get_user_context
|
||||
from app.db.session import get_db
|
||||
from app.schemas.evaluation import EvaluationDetailResponse, EvaluationListResponse, ExportPdfResponse
|
||||
from app.services.evaluation_service import EvaluationService
|
||||
from app.services.pdf_export_service import PdfExportService
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("", response_model=ApiResponse[EvaluationListResponse])
|
||||
def list_evaluations(ctx: UserContext = Depends(get_user_context), db: Session = Depends(get_db)):
|
||||
"""历史评价:基于 user_id 查询完整训练后的评价记录。"""
|
||||
return ok(EvaluationService(db).list_history(ctx.user_id))
|
||||
|
||||
|
||||
@router.get("/{evaluation_id}", response_model=ApiResponse[EvaluationDetailResponse])
|
||||
def get_evaluation_detail(
|
||||
evaluation_id: int,
|
||||
ctx: UserContext = Depends(get_user_context),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
"""评价详情:校验 user_id 后返回完整评价报告。"""
|
||||
return ok(EvaluationService(db).get_detail(evaluation_id, ctx.user_id))
|
||||
|
||||
|
||||
@router.post("/{evaluation_id}/export-pdf", response_model=ApiResponse[ExportPdfResponse])
|
||||
def export_pdf(
|
||||
evaluation_id: int,
|
||||
ctx: UserContext = Depends(get_user_context),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
"""PDF 导出:生成评价报告 PDF 并保存导出记录。"""
|
||||
export = PdfExportService(db).export(evaluation_id, ctx.user_id)
|
||||
db.commit()
|
||||
return ok(ExportPdfResponse(export_id=export.id, file_path=export.file_path))
|
||||
Reference in New Issue
Block a user