using Sony.Filtr.ApolloAPI.Models.Apple; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Sony.Filtr.ApolloAPI { public interface IApolloAppleWebApi { Task GetPlaylistWithFullTracklistAsync(string storefront, string playlistId); Task GetPlaylistWithFullTracklistAsync(string storefront, string playlistId, TimeSpan cacheExpiration); Task> GetPlaylistsWithFullTracklistsAsync(string storefront, IEnumerable playlistIds); Task> GetPlaylistsWithFullTracklistsAsync(string storefront, IEnumerable playlistIds, TimeSpan cacheExpiration); Task> GetPlaylistTracksAsync(string storefront, string playlistId); Task> GetPlaylistTracksAsync(string storefront, string playlistId, TimeSpan cacheExpiration); Task> GetSongsAsync(string storefrontId, IEnumerable songIds, TimeSpan cacheExpiration); Task> GetSongsAsync(string storefrontId, IEnumerable songIds); Task> GetArtistsAsync(string storefrontId, IEnumerable artistIds, TimeSpan cacheExpiration); Task> GetArtistsAsync(string storefrontId, IEnumerable artistIds); Task> GetAlbumsAsync(string storefrontId, IEnumerable albumIds, TimeSpan cacheExpiration); Task> GetAlbumsAsync(string storefrontId, IEnumerable albumIds); Task GetAllStorefrontsAsync(); Task GetAllStorefrontsAsync(TimeSpan cacheExpiration); Task> GetPaginatedSongChartAsync(string storeFront, string chartname, long? genreId = null, int? limit = 50); Task> GetPaginatedSongChartAsync(string storeFront, string chartname, TimeSpan cacheExpiration, long? genreId = null, int? limit = 50); Task GetFullChartAsync(string storeFront, long? genreId = null, int? limit = 50); Task GetFullChartAsync(string storeFront, TimeSpan cacheExpiration, long? genreId = null, int? limit = 50); Task> GetChartGenresAsync(string storeFront); Task> GetChartGenresAsync(string storeFront, TimeSpan cacheExpiration); Task GetPlaylistAsync(string storeFront, string playlistId, string jobName = null); Task GetPlaylistAsync(string storeFront, string playlistId, TimeSpan cacheExpiration, string jobName = null); } }