"""Logic Tier for Episode Replication Status.""" from podcast.logic.user import current_user_has_read_only_access_then_raise from podcast.logic.user_v2 import current_user_owns_show_family_or_raise from podcast.models import episode_replication_status as episode_replication_status_model from podcast.models import podcast as podcast_model def update_episode_replication_status_by_ids(data): """Update episode replication status record by status ids. Args: data (list of dict): contains list status ids and show_family_id. Returns: dict: containing a list of dict updated EpisodeReplicationStatus records. """ current_user_has_read_only_access_then_raise() current_user_owns_show_family_or_raise(data['show_family_id']) return episode_replication_status_model.update_status_by_ids(data['ids']) def get_failed_bulk_episodes_replication_status(podcast_id): """Return failed bulk episodes replication status for a podcast id.""" podcast = podcast_model.get_podcast_by_id(podcast_id) current_user_owns_show_family_or_raise(podcast['show_family_id']) return episode_replication_status_model.get_failed_bulk_episodes_replication_status(podcast_id) def get_failed_single_episodes_replication_status(original_podcast_id): """Return failed episodes replication status for replication type single by original_podcast_id.""" podcast = podcast_model.get_podcast_by_id(original_podcast_id) current_user_owns_show_family_or_raise(podcast['show_family_id']) return episode_replication_status_model.get_failed_single_episodes_replication_status(original_podcast_id)