fix: 修复剩余审查问题

- ingest.py: 异常不再暴露客户端,改为通用错误消息+日志记录
- bzzoiro.py: 修复 normalize 重复调用,改为一次遍历缓存结果
- understat.py: 使用 Repository 替代原始 SQL
This commit is contained in:
shangfangjian
2026-09-15 01:26:15 +08:00
parent 53e602b4f6
commit 2c205c68b1
3 changed files with 35 additions and 29 deletions
+10 -3
View File
@@ -1,6 +1,8 @@
"""采集路由。"""
from __future__ import annotations
import logging
from fastapi import APIRouter, HTTPException
from src.api.schemas import IngestBzzoiroRequest, IngestResponse, IngestUnderstatRequest, IngestInjuriesRequest, IngestSimpleResponse
@@ -8,6 +10,8 @@ from src.data.sources import get_source
from src.data.injuries import ingest_injuries
from src.db.unit_of_work import get_uow
logger = logging.getLogger(__name__)
router = APIRouter(prefix="/api/v1", tags=["ingest"])
@@ -26,7 +30,8 @@ async def ingest_bzzoiro_route(req: IngestBzzoiroRequest):
)
return IngestResponse(**result)
except Exception as e:
raise HTTPException(500, str(e))
logger.exception("bzzoiro ingest failed")
raise HTTPException(500, "数据采集失败,请查看服务器日志")
@router.post("/ingest/understat", response_model=IngestSimpleResponse)
@@ -38,7 +43,8 @@ async def ingest_understat_route(req: IngestUnderstatRequest):
result = await source.ingest(session, league=req.league, season=req.season)
return IngestSimpleResponse(**result)
except Exception as e:
raise HTTPException(500, str(e))
logger.exception("understat ingest failed")
raise HTTPException(500, "xG 回填失败,请查看服务器日志")
@router.post("/ingest/injuries", response_model=IngestSimpleResponse)
@@ -49,4 +55,5 @@ async def ingest_injuries_route(req: IngestInjuriesRequest):
result = await ingest_injuries(session, date=req.date)
return IngestSimpleResponse(**result)
except Exception as e:
raise HTTPException(500, str(e))
logger.exception("injuries ingest failed")
raise HTTPException(500, "伤停采集失败,请查看服务器日志")