import logging from aiohttp import web from aiohttp_apispec import docs, querystring_schema from server.constants import BASE_API_PREFIX from server.scenarios.distributors import get_distributors as get_distributors_scenario from server.schemas.distributors import DistributorsCheck from server.utils.response import dump_response_schema router = web.RouteTableDef() logger = logging.getLogger(__name__) @router.get(BASE_API_PREFIX + "/distributors/check/") @docs( tags=["tracks", "albums", "distributors"], description="Returns distributors flags based on track_id or upc. " "One and only one of track_id or upc must be specified.", ) @querystring_schema(DistributorsCheck.Request) @dump_response_schema(DistributorsCheck.Response(many=True)) async def get_distributors(request: web.Request) -> web.Response: result = (await get_distributors_scenario(**request["querystring"]))[0] return web.json_response(result)