using System.Threading.Tasks; using SpotifyAPI.Web.Http; using URLs = SpotifyAPI.Web.SpotifyUrls; namespace SpotifyAPI.Web { public class ShowsClient : APIClient, IShowsClient { public ShowsClient(IAPIConnector connector) : base(connector) { } public Task Get(string showId) { Ensure.ArgumentNotNullOrEmptyString(showId, nameof(showId)); return API.Get(URLs.Show(showId)); } public Task Get(string showId, ShowRequest request) { Ensure.ArgumentNotNullOrEmptyString(showId, nameof(showId)); Ensure.ArgumentNotNull(request, nameof(request)); return API.Get(URLs.Show(showId), request.BuildQueryParams()); } public Task GetSeveral(ShowsRequest request) { Ensure.ArgumentNotNull(request, nameof(request)); return API.Get(URLs.Shows(), request.BuildQueryParams()); } public Task> GetEpisodes(string showId) { Ensure.ArgumentNotNullOrEmptyString(showId, nameof(showId)); return API.Get>(URLs.ShowEpisodes(showId)); } public Task> GetEpisodes(string showId, ShowEpisodesRequest request) { Ensure.ArgumentNotNullOrEmptyString(showId, nameof(showId)); Ensure.ArgumentNotNull(request, nameof(request)); return API.Get>(URLs.ShowEpisodes(showId), request.BuildQueryParams()); } } }