from __future__ import annotations from pydantic import ValidationError from quart import Blueprint, jsonify from app.api.service import DailyRankManager from app.api.v1.utils import ApiDependencies, DailyRankQueryRequest from app.api.v1.utils import parse_json, validation_error_response def create_rank_log_bp(deps: ApiDependencies) -> Blueprint: bp = Blueprint("rank_log", __name__) @bp.route("/daily_rank", methods=["POST"]) async def query_daily_rank(): """查询日榜数据""" try: _, body = await parse_json(DailyRankQueryRequest) except ValidationError as e: payload, status = validation_error_response(e) return jsonify(payload), status manager = DailyRankManager(pool=deps.db, data=body) result = await manager.query_daily_rank() return jsonify(result) return bp