routes.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from quart import Blueprint, jsonify, request
  2. from app.ab_test import GetCoverService
  3. from app.infra.shared.tools import generate_task_trace_id
  4. from app.core.config import GlobalConfigSettings
  5. from app.core.database import DatabaseManager
  6. from app.core.observability import LogService
  7. from app.api.service import TaskScheduler
  8. from app.api.service import TaskManager
  9. from app.api.service import GzhCookieManager
  10. server_blueprint = Blueprint("api", __name__, url_prefix="/api")
  11. def server_routes(
  12. pools: DatabaseManager, log_service: LogService, config: GlobalConfigSettings
  13. ):
  14. @server_blueprint.route("/get_cover", methods=["POST"])
  15. async def get_cover():
  16. params = await request.get_json()
  17. task = GetCoverService(pools, params)
  18. return jsonify(await task.deal())
  19. @server_blueprint.route("/run_task", methods=["POST"])
  20. async def run_task():
  21. trace_id = generate_task_trace_id()
  22. data = await request.get_json()
  23. task_scheduler = TaskScheduler(data, log_service, pools, trace_id, config)
  24. response = await task_scheduler.deal()
  25. return jsonify(response)
  26. @server_blueprint.route("/health", methods=["GET"])
  27. async def hello_world():
  28. # data = await request.get_json()
  29. return jsonify({"message": "hello world"})
  30. @server_blueprint.route("/tasks", methods=["POST"])
  31. async def task_list():
  32. data = await request.get_json()
  33. TMS = TaskManager(pool=pools, data=data, config=config)
  34. res = await TMS.list_tasks()
  35. return jsonify(res)
  36. @server_blueprint.route("/save_token", methods=["POST"])
  37. async def save_token():
  38. data = await request.get_json()
  39. GCM = GzhCookieManager(pool=pools, log_client=log_service)
  40. res = await GCM.deal(data)
  41. return jsonify(res)
  42. return server_blueprint