from aiohttp import web from aiohttp_apispec import docs, querystring_schema from apollo_utils.core.constants.dsp import DSP from server.constants import BASE_API_PREFIX from server.domains.playlists.apple.dates import get_playlists_apple_dates from server.scenarios.playlists.get_dates_by_playlist_id.common import get_playlist_dates from server.schemas.playlists.apple.dates import PlaylistAppleDates from server.utils.response import dump_response_schema router = web.RouteTableDef() @router.get(BASE_API_PREFIX + "/playlists/apple/dates/") @docs( tags=["playlists", "apple", "dates"], summary="", ) @querystring_schema(PlaylistAppleDates.Request) @dump_response_schema(PlaylistAppleDates.Response, apply=False) async def get(request: web.Request) -> web.Response: params = request["querystring"] playlist_id, country_code = params["playlist_id"], params["country"] playlist_dates = await get_playlist_dates(dsp=DSP.APPLE, playlist_id=playlist_id, country_code=country_code) response = await get_playlists_apple_dates(playlist_dates) return web.json_response(response)