from __future__ import annotations from pydantic import ValidationError from quart import Blueprint, jsonify from app.api.service import GzhCookieManager from app.api.v1.utils import ApiDependencies from app.api.v1.utils import SaveTokenRequest from app.api.v1.utils import parse_json, validation_error_response def create_tokens_bp(deps: ApiDependencies) -> Blueprint: bp = Blueprint("tokens", __name__) @bp.route("/save_token", methods=["POST"]) async def save_token(): try: _, body = await parse_json(SaveTokenRequest) except ValidationError as e: payload, status = validation_error_response(e) return jsonify(payload), status manager = GzhCookieManager(pool=deps.db, log_client=deps.log) result = await manager.deal(body) return jsonify(result) return bp