tokens.py 858 B

12345678910111213141516171819202122232425262728
  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.deps import ApiDependencies
  6. from app.api.v1.utils import parse_json, validation_error_response
  7. from app.api.v1.utils import SaveTokenRequest
  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