"""Logic Tier for Search .""" from podcast.constants.feature_flag import FEATURE_PODCAST_IA_RESTRUCTURE from podcast.logic import user as user_logic from podcast.logic import user_v2 as user_v2_logic from podcast.models import episode, network, podcast from podcast.utils import feature_flag_utils def search(text): """Search across all networks, podcast and episodes. Args: text (string): search text Returns: dict: containing the list of search results. """ network_ids = user_logic.network_ids_for_current_user() if feature_flag_utils.get_feature_flag(FEATURE_PODCAST_IA_RESTRUCTURE): podcast_ids = user_v2_logic.podcast_ids_owned_by_current_user() else: podcast_ids = user_logic.podcast_ids_owned_by_current_user() networks = network.search_networks(text, network_ids) podcasts = podcast.search_podcasts(text, podcast_ids) episodes = episode.search_episodes(text, podcast_ids) results = networks + podcasts + episodes return {'items': results}