rank_log.py 881 B

123456789101112131415161718192021222324252627
  1. from __future__ import annotations
  2. from pydantic import ValidationError
  3. from quart import Blueprint, jsonify
  4. from app.api.service import DailyRankManager
  5. from app.api.v1.utils import ApiDependencies, DailyRankQueryRequest
  6. from app.api.v1.utils import parse_json, validation_error_response
  7. def create_rank_log_bp(deps: ApiDependencies) -> Blueprint:
  8. bp = Blueprint("rank_log", __name__)
  9. @bp.route("/daily_rank", methods=["POST"])
  10. async def query_daily_rank():
  11. """查询日榜数据"""
  12. try:
  13. _, body = await parse_json(DailyRankQueryRequest)
  14. except ValidationError as e:
  15. payload, status = validation_error_response(e)
  16. return jsonify(payload), status
  17. manager = DailyRankManager(pool=deps.db, data=body)
  18. result = await manager.query_daily_rank()
  19. return jsonify(result)
  20. return bp