abtest.py 824 B

123456789101112131415161718192021222324252627
  1. from __future__ import annotations
  2. from pydantic import ValidationError
  3. from quart import Blueprint, jsonify
  4. from app.ab_test import GetCoverService
  5. from app.api.v1.utils import ApiDependencies
  6. from app.api.v1.utils import GetCoverRequest
  7. from app.api.v1.utils import parse_json, validation_error_response
  8. def create_abtest_bp(deps: ApiDependencies) -> Blueprint:
  9. bp = Blueprint("abtest", __name__)
  10. @bp.route("/get_cover", methods=["POST"])
  11. async def get_cover():
  12. try:
  13. _, body = await parse_json(GetCoverRequest)
  14. except ValidationError as e:
  15. payload, status = validation_error_response(e)
  16. return jsonify(payload), status
  17. service = GetCoverService(deps.db, body)
  18. result = await service.deal()
  19. return jsonify(result)
  20. return bp