public Task <FullEpisode> Get(string episodeId, EpisodeRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(episodeId, nameof(episodeId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <FullEpisode>(URLs.Episode(episodeId), request.BuildQueryParams()));
        }
예제 #2
0
        public Task <FullShow> Get(string showId, ShowRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(showId, nameof(showId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <FullShow>(URLs.Show(showId), request.BuildQueryParams()));
        }
예제 #3
0
        public Task <FullAlbum> Get(string albumId, AlbumRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(albumId, nameof(albumId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <FullAlbum>(URLs.Album(albumId), request.BuildQueryParams()));
        }
예제 #4
0
        public Task <Paging <SimpleTrack> > GetTracks(string albumId, AlbumTracksRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(albumId, nameof(albumId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <Paging <SimpleTrack> >(URLs.AlbumTracks(albumId), request.BuildQueryParams()));
        }
예제 #5
0
        public Task <FullPlaylist> Get(string playlistId, PlaylistGetRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(playlistId, nameof(playlistId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <FullPlaylist>(URLs.Playlist(playlistId), request.BuildQueryParams()));
        }
예제 #6
0
        public Task <FullTrack> Get(string trackId, TrackRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(trackId, nameof(trackId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <FullTrack>(URLs.Track(trackId), request.BuildQueryParams()));
        }
예제 #7
0
        public Task <ArtistsTopTracksResponse> GetTopTracks(string artistId, ArtistsTopTracksRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(artistId, nameof(artistId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <ArtistsTopTracksResponse>(URLs.ArtistTopTracks(artistId), request.BuildQueryParams()));
        }
예제 #8
0
        public Task <Paging <SimplePlaylist> > GetUsers(string userId, PlaylistGetUsersRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(userId, nameof(userId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <Paging <SimplePlaylist> >(URLs.UserPlaylists(userId), request.BuildQueryParams()));
        }
예제 #9
0
        public Task <Paging <PlaylistTrack <IPlayableItem> > > GetItems(string playlistId, PlaylistGetItemsRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(playlistId, nameof(playlistId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <Paging <PlaylistTrack <IPlayableItem> > >(URLs.PlaylistTracks(playlistId), request.BuildQueryParams()));
        }
예제 #10
0
        public Task <FullPlaylist> Create(string userId, PlaylistCreateRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(userId, nameof(userId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Post <FullPlaylist>(URLs.UserPlaylists(userId), null, request.BuildBodyParams()));
        }
예제 #11
0
        public Task <SnapshotResponse> AddItems(string playlistId, PlaylistAddItemsRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(playlistId, nameof(playlistId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Post <SnapshotResponse>(URLs.PlaylistTracks(playlistId), null, request.BuildBodyParams()));
        }
예제 #12
0
        public Task <List <bool> > CheckPlaylist(string playlistId, FollowCheckPlaylistRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(playlistId, nameof(playlistId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <List <bool> >(URLs.PlaylistFollowersContains(playlistId), request.BuildQueryParams()));
        }
예제 #13
0
        public Task <CategoryPlaylistsResponse> GetCategoryPlaylists(string categoryId, CategoriesPlaylistsRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(categoryId, nameof(categoryId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <CategoryPlaylistsResponse>(URLs.CategoryPlaylists(categoryId), request.BuildQueryParams()));
        }
예제 #14
0
        public Task <Paging <SimpleAlbum> > GetAlbums(string artistId, ArtistsAlbumsRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(artistId, nameof(artistId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <Paging <SimpleAlbum> >(URLs.ArtistAlbums(artistId), request.BuildQueryParams()));
        }
예제 #15
0
        public Task <Paging <SimpleEpisode> > GetEpisodes(string showId, ShowEpisodesRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(showId, nameof(showId));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <Paging <SimpleEpisode> >(URLs.ShowEpisodes(showId), request.BuildQueryParams()));
        }
예제 #16
0
        public async Task <bool> SeekTo(PlayerSeekToRequest request)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            var statusCode = await API.Put(URLs.PlayerSeek(), request.BuildQueryParams(), null).ConfigureAwait(false);

            return(statusCode == HttpStatusCode.NoContent);
        }
예제 #17
0
        public async Task <bool> TransferPlayback(PlayerTransferPlaybackRequest request)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            var statusCode = await API.Put(URLs.Player(), null, request.BuildBodyParams()).ConfigureAwait(false);

            return(statusCode == HttpStatusCode.NoContent);
        }
예제 #18
0
        public async Task <bool> ReplaceItems(string playlistId, PlaylistReplaceItemsRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(playlistId, nameof(playlistId));
            Ensure.ArgumentNotNull(request, nameof(request));

            var statusCode = await API.Put(URLs.PlaylistTracks(playlistId), null, request.BuildBodyParams()).ConfigureAwait(false);

            return(statusCode == HttpStatusCode.Created);
        }
예제 #19
0
        public async Task <bool> ChangeDetails(string playlistId, PlaylistChangeDetailsRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(playlistId, nameof(playlistId));
            Ensure.ArgumentNotNull(request, nameof(request));

            var statusCode = await API.Put(URLs.Playlist(playlistId), null, request.BuildBodyParams()).ConfigureAwait(false);

            return(statusCode == HttpStatusCode.OK);
        }
예제 #20
0
        public async Task <bool> UploadCover(string playlistId, string base64JpgData)
        {
            Ensure.ArgumentNotNullOrEmptyString(playlistId, nameof(playlistId));
            Ensure.ArgumentNotNullOrEmptyString(base64JpgData, nameof(base64JpgData));

            var statusCode = await API.PutRaw(URLs.PlaylistImages(playlistId), null, base64JpgData).ConfigureAwait(false);

            return(statusCode == HttpStatusCode.Accepted);
        }
예제 #21
0
        public async Task <bool> UnfollowPlaylist(string playlistId)
        {
            Ensure.ArgumentNotNullOrEmptyString(playlistId, nameof(playlistId));

            var statusCode = await API
                             .Delete(URLs.PlaylistFollowers(playlistId), null, null)
                             .ConfigureAwait(false);

            return(statusCode == HttpStatusCode.OK);
        }
예제 #22
0
        public async Task <bool> Unfollow(UnfollowRequest request)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            var statusCode = await API
                             .Delete(URLs.CurrentUserFollower(), request.BuildQueryParams(), request.BuildBodyParams())
                             .ConfigureAwait(false);

            return(statusCode == HttpStatusCode.NoContent);
        }
예제 #23
0
        public Task <FollowedArtistsResponse> OfCurrentUser(FollowOfCurrentUserRequest request)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <FollowedArtistsResponse>(URLs.CurrentUserFollower(), request.BuildQueryParams()));
        }
예제 #24
0
        public Task <List <bool> > CheckCurrentUser(FollowCheckCurrentUserRequest request)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <List <bool> >(URLs.CurrentUserFollowerContains(), request.BuildQueryParams()));
        }
예제 #25
0
        public Task <FeaturedPlaylistsResponse> GetFeaturedPlaylists(FeaturedPlaylistsRequest request)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <FeaturedPlaylistsResponse>(URLs.FeaturedPlaylists(), request.BuildQueryParams()));
        }
예제 #26
0
 public Task <FeaturedPlaylistsResponse> GetFeaturedPlaylists()
 {
     return(API.Get <FeaturedPlaylistsResponse>(URLs.FeaturedPlaylists()));
 }
예제 #27
0
        public Task <NewReleasesResponse> GetNewReleases(NewReleasesRequest request)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <NewReleasesResponse>(URLs.NewReleases(), request.BuildQueryParams()));
        }
예제 #28
0
 public Task <NewReleasesResponse> GetNewReleases()
 {
     return(API.Get <NewReleasesResponse>(URLs.NewReleases()));
 }
예제 #29
0
 public Task <RecommendationGenresResponse> GetRecommendationGenres()
 {
     return(API.Get <RecommendationGenresResponse>(URLs.RecommendationGenres()));
 }
예제 #30
0
        public Task <RecommendationsResponse> GetRecommendations(RecommendationsRequest request)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            return(API.Get <RecommendationsResponse>(URLs.Recommendations(), request.BuildQueryParams()));
        }