from aiohttp import web from aiohttp_apispec import docs, headers_schema, querystring_schema from server.constants import BASE_API_PREFIX from server.scenarios.tracks.get_visited_tracks import get_visited_tracks from server.schemas.auth import UserHeader from server.schemas.tracks.visited_tracks import UserTracksVisited from server.utils.response import dump_response_schema router = web.RouteTableDef() @router.get(BASE_API_PREFIX + "/user/tracks/visited/") @docs(tags=["tracks", "user"], summary="Retrieve list of most visited tracks for a user") @headers_schema(UserHeader) @querystring_schema(UserTracksVisited.Request) @dump_response_schema(UserTracksVisited.Response(many=True)) async def get(request: web.Request): params = request["querystring"] market = params["market"] result = await get_visited_tracks(market) return result