tokens.py 858 B

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