From 4f85496fe5d20bf79954239875cb98f9fb73c21e Mon Sep 17 00:00:00 2001 From: gahusb Date: Mon, 11 May 2026 08:39:01 +0900 Subject: [PATCH] =?UTF-8?q?feat(lotto):=20review=20=EB=9D=BC=EC=9A=B0?= =?UTF-8?q?=ED=84=B0=20=E2=80=94=20latest/history/by-draw?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lotto/app/main.py | 2 ++ lotto/app/routers/review.py | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 lotto/app/routers/review.py 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