from typing import Any, Dict, List, Mapping, Union from analytics.constants import cache from analytics.queries.format import format_row from analytics.queries.sound_recording import SoundRecordingRelatedVideosByIsrc from analytics.utils.cache import cache_in_redis @cache_in_redis(ttl=cache.ONE_DAY) def get_sound_recording_related_videos_by_isrc( query_params: Mapping[str, Any], permissions: Mapping[str, Any], ) -> Dict[str, Union[List[Dict], int]]: query = SoundRecordingRelatedVideosByIsrc({**query_params, **permissions}) video_ids = [format_row(data_point)["video_id"] for data_point in query.execute()] return video_ids