xiangqinxiaochengxu/backend/app/routers/admin/matches.py
2026-04-17 10:49:14 +08:00

26 lines
946 B
Python

from datetime import datetime, timedelta
from fastapi import APIRouter, Depends, Query
from sqlalchemy.ext.asyncio import AsyncSession
from app.database import get_db
from app.dependencies import get_current_admin
from app.services.admin_service import list_admin_matches
router = APIRouter()
@router.get("")
async def get_matches(
user_id: int | None = Query(default=None),
start_date: str | None = Query(default=None),
end_date: str | None = Query(default=None),
admin_payload: dict = Depends(get_current_admin),
session: AsyncSession = Depends(get_db),
) -> dict:
_ = admin_payload
parsed_start = datetime.fromisoformat(start_date) if start_date else None
parsed_end = datetime.fromisoformat(end_date) + timedelta(days=1) if end_date else None
data = await list_admin_matches(session, user_id=user_id, start_date=parsed_start, end_date=parsed_end)
return {"code": 0, "message": "ok", "data": data}