diff --git a/lotto/app/main.py b/lotto/app/main.py index ead8550..301f1dc 100644 --- a/lotto/app/main.py +++ b/lotto/app/main.py @@ -39,11 +39,13 @@ from .strategy_evolver import ( ) from .routers import curator as curator_router from .routers import briefing as briefing_router +from .routers import review as review_router from .jobs.grade_weekly_review import run_for_latest as grade_run_for_latest app = FastAPI() app.include_router(curator_router.router) app.include_router(briefing_router.router) +app.include_router(review_router.router) scheduler = BackgroundScheduler(timezone=os.getenv("TZ", "Asia/Seoul")) ALL_URL = os.getenv("LOTTO_ALL_URL", "https://smok95.github.io/lotto/results/all.json") diff --git a/lotto/app/routers/review.py b/lotto/app/routers/review.py new file mode 100644 index 0000000..b388068 --- /dev/null +++ b/lotto/app/routers/review.py @@ -0,0 +1,26 @@ +"""주간 회고(weekly_review) 조회 엔드포인트.""" +from fastapi import APIRouter, HTTPException +from .. import db + +router = APIRouter(prefix="/api/lotto/review") + + +@router.get("/latest") +def latest(): + r = db.get_latest_review() + if not r: + raise HTTPException(404, "no review yet") + return r + + +@router.get("/history") +def history(limit: int = 10): + return {"reviews": db.list_reviews(limit)} + + +@router.get("/{draw_no}") +def get_one(draw_no: int): + r = db.get_review(draw_no) + if not r: + raise HTTPException(404, f"no review for draw {draw_no}") + return r