cameo 0.1.0

Unified movie/TV show database SDK for Rust
Documentation
use super::{CameoClient, CameoClientError};
use crate::unified::{
    models::{UnifiedEpisode, UnifiedSeasonDetails},
    traits::SeasonProvider,
};

impl SeasonProvider for CameoClient {
    type Error = CameoClientError;

    async fn season_details(
        &self,
        show_id: i32,
        season_number: u32,
    ) -> Result<UnifiedSeasonDetails, CameoClientError> {
        let _ = (show_id, season_number);
        #[cfg(feature = "tmdb")]
        if let Some(client) = &self.tmdb {
            tracing::debug!(show_id, season_number, "dispatching season_details to tmdb");
            return Ok(client.tv_season_details(show_id, season_number).await?);
        }

        Err(CameoClientError::NoProviders)
    }

    async fn episode_details(
        &self,
        show_id: i32,
        season_number: u32,
        episode_number: u32,
    ) -> Result<UnifiedEpisode, CameoClientError> {
        let _ = (show_id, season_number, episode_number);
        #[cfg(feature = "tmdb")]
        if let Some(client) = &self.tmdb {
            tracing::debug!(
                show_id,
                season_number,
                episode_number,
                "dispatching episode_details to tmdb"
            );
            return Ok(client
                .tv_episode_details(show_id, season_number, episode_number)
                .await?);
        }

        Err(CameoClientError::NoProviders)
    }
}