mirror of
https://github.com/Sarsoo/Spotify.NET.git
synced 2024-10-17 07:23:08 +01:00
Finished ASync Implementation.
This commit is contained in:
parent
b2f8c2a67a
commit
85a7bf6101
@ -5,6 +5,7 @@ using SpotifyAPI.Web.Models;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace SpotifyAPI.Web
|
namespace SpotifyAPI.Web
|
||||||
@ -67,9 +68,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="offset">The index of the first result to return. Default: 0</param>
|
/// <param name="offset">The index of the first result to return. Default: 0</param>
|
||||||
/// <param name="market">An ISO 3166-1 alpha-2 country code or the string from_token.</param>
|
/// <param name="market">An ISO 3166-1 alpha-2 country code or the string from_token.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<SearchItem> SearchItemsAsync(String q, SearchType type, int limit = 20, int offset = 0, String market = "")
|
public async Task<SearchItem> SearchItemsAsync(String q, SearchType type, int limit = 20, int offset = 0, String market = "")
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<SearchItem>(_builder.SearchItems(q, type, limit, offset, market));
|
return await DownloadDataAsync<SearchItem>(_builder.SearchItems(q, type, limit, offset, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Search
|
#endregion Search
|
||||||
@ -99,9 +100,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="offset">The index of the first track to return. Default: 0 (the first object).</param>
|
/// <param name="offset">The index of the first track to return. Default: 0 (the first object).</param>
|
||||||
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<Paging<SimpleTrack>> GetAlbumTracksAsync(String id, int limit = 20, int offset = 0, String market = "")
|
public async Task<Paging<SimpleTrack>> GetAlbumTracksAsync(String id, int limit = 20, int offset = 0, String market = "")
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<Paging<SimpleTrack>>(_builder.GetAlbumTracks(id, limit, offset, market));
|
return await DownloadDataAsync<Paging<SimpleTrack>>(_builder.GetAlbumTracks(id, limit, offset, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -121,9 +122,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="id">The Spotify ID for the album.</param>
|
/// <param name="id">The Spotify ID for the album.</param>
|
||||||
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<FullAlbum> GetAlbumAsync(String id, String market = "")
|
public async Task<FullAlbum> GetAlbumAsync(String id, String market = "")
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<FullAlbum>(_builder.GetAlbum(id, market));
|
return await DownloadDataAsync<FullAlbum>(_builder.GetAlbum(id, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -143,9 +144,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="ids">A list of the Spotify IDs for the albums. Maximum: 20 IDs.</param>
|
/// <param name="ids">A list of the Spotify IDs for the albums. Maximum: 20 IDs.</param>
|
||||||
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<SeveralAlbums> GetSeveralAlbumsAsync(List<String> ids, String market = "")
|
public async Task<SeveralAlbums> GetSeveralAlbumsAsync(List<String> ids, String market = "")
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<SeveralAlbums>(_builder.GetSeveralAlbums(ids, market));
|
return await DownloadDataAsync<SeveralAlbums>(_builder.GetSeveralAlbums(ids, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Albums
|
#endregion Albums
|
||||||
@ -167,9 +168,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">The Spotify ID for the artist.</param>
|
/// <param name="id">The Spotify ID for the artist.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<FullArtist> GetArtistAsync(String id)
|
public async Task<FullArtist> GetArtistAsync(String id)
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<FullArtist>(_builder.GetArtist(id));
|
return await DownloadDataAsync<FullArtist>(_builder.GetArtist(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -189,9 +190,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">The Spotify ID for the artist.</param>
|
/// <param name="id">The Spotify ID for the artist.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<SeveralArtists> GetRelatedArtistsAsync(String id)
|
public async Task<SeveralArtists> GetRelatedArtistsAsync(String id)
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<SeveralArtists>(_builder.GetRelatedArtists(id));
|
return await DownloadDataAsync<SeveralArtists>(_builder.GetRelatedArtists(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -211,9 +212,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="id">The Spotify ID for the artist.</param>
|
/// <param name="id">The Spotify ID for the artist.</param>
|
||||||
/// <param name="country">The country: an ISO 3166-1 alpha-2 country code.</param>
|
/// <param name="country">The country: an ISO 3166-1 alpha-2 country code.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<SeveralTracks> GetArtistsTopTracksAsync(String id, String country)
|
public async Task<SeveralTracks> GetArtistsTopTracksAsync(String id, String country)
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<SeveralTracks>(_builder.GetArtistsTopTracks(id, country));
|
return await DownloadDataAsync<SeveralTracks>(_builder.GetArtistsTopTracks(id, country));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -253,9 +254,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// geographical market
|
/// geographical market
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<Paging<SimpleAlbum>> GetArtistsAlbumsAsync(String id, AlbumType type = AlbumType.All, int limit = 20, int offset = 0, String market = "")
|
public async Task<Paging<SimpleAlbum>> GetArtistsAlbumsAsync(String id, AlbumType type = AlbumType.All, int limit = 20, int offset = 0, String market = "")
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<Paging<SimpleAlbum>>(_builder.GetArtistsAlbums(id, type, limit, offset, market));
|
return await DownloadDataAsync<Paging<SimpleAlbum>>(_builder.GetArtistsAlbums(id, type, limit, offset, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -273,9 +274,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ids">A list of the Spotify IDs for the artists. Maximum: 50 IDs.</param>
|
/// <param name="ids">A list of the Spotify IDs for the artists. Maximum: 50 IDs.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<SeveralArtists> GetSeveralArtistsAsync(List<String> ids)
|
public async Task<SeveralArtists> GetSeveralArtistsAsync(List<String> ids)
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<SeveralArtists>(_builder.GetSeveralArtists(ids));
|
return await DownloadDataAsync<SeveralArtists>(_builder.GetSeveralArtists(ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Artists
|
#endregion Artists
|
||||||
@ -313,11 +314,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="limit">The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.</param>
|
/// <param name="limit">The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.</param>
|
||||||
/// <param name="offset">The index of the first item to return. Default: 0</param>
|
/// <param name="offset">The index of the first item to return. Default: 0</param>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<FeaturedPlaylists> GetFeaturedPlaylistsAsync(String locale = "", String country = "", DateTime timestamp = default(DateTime), int limit = 20, int offset = 0)
|
public async Task<FeaturedPlaylists> GetFeaturedPlaylistsAsync(String locale = "", String country = "", DateTime timestamp = default(DateTime), int limit = 20, int offset = 0)
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetFeaturedPlaylists");
|
throw new InvalidOperationException("Auth is required for GetFeaturedPlaylists");
|
||||||
return DownloadDataAsync<FeaturedPlaylists>(_builder.GetFeaturedPlaylists(locale, country, timestamp, limit, offset));
|
return await DownloadDataAsync<FeaturedPlaylists>(_builder.GetFeaturedPlaylists(locale, country, timestamp, limit, offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -343,11 +344,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="offset">The index of the first item to return. Default: 0</param>
|
/// <param name="offset">The index of the first item to return. Default: 0</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<NewAlbumReleases> GetNewAlbumReleasesAsync(String country = "", int limit = 20, int offset = 0)
|
public async Task<NewAlbumReleases> GetNewAlbumReleasesAsync(String country = "", int limit = 20, int offset = 0)
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetNewAlbumReleases");
|
throw new InvalidOperationException("Auth is required for GetNewAlbumReleases");
|
||||||
return DownloadDataAsync<NewAlbumReleases>(_builder.GetNewAlbumReleases(country, limit, offset));
|
return await DownloadDataAsync<NewAlbumReleases>(_builder.GetNewAlbumReleases(country, limit, offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -387,11 +388,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="offset">The index of the first item to return. Default: 0 (the first object).</param>
|
/// <param name="offset">The index of the first item to return. Default: 0 (the first object).</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<CategoryList> GetCategoriesAsync(String country = "", String locale = "", int limit = 20, int offset = 0)
|
public async Task<CategoryList> GetCategoriesAsync(String country = "", String locale = "", int limit = 20, int offset = 0)
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetCategories");
|
throw new InvalidOperationException("Auth is required for GetCategories");
|
||||||
return DownloadDataAsync<CategoryList>(_builder.GetCategories(country, locale, limit, offset));
|
return await DownloadDataAsync<CategoryList>(_builder.GetCategories(country, locale, limit, offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -427,9 +428,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// </param>
|
/// </param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<Category> GetCategoryAsync(String categoryId, String country = "", String locale = "")
|
public async Task<Category> GetCategoryAsync(String categoryId, String country = "", String locale = "")
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<Category>(_builder.GetCategory(categoryId, country, locale));
|
return await DownloadDataAsync<Category>(_builder.GetCategory(categoryId, country, locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -455,9 +456,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="offset">The index of the first item to return. Default: 0</param>
|
/// <param name="offset">The index of the first item to return. Default: 0</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<CategoryPlaylist> GetCategoryPlaylistsAsync(String categoryId, String country = "", int limit = 20, int offset = 0)
|
public async Task<CategoryPlaylist> GetCategoryPlaylistsAsync(String categoryId, String country = "", int limit = 20, int offset = 0)
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<CategoryPlaylist>(_builder.GetCategoryPlaylists(categoryId, country, limit, offset));
|
return await DownloadDataAsync<CategoryPlaylist>(_builder.GetCategoryPlaylists(categoryId, country, limit, offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Browse
|
#endregion Browse
|
||||||
@ -476,7 +477,7 @@ namespace SpotifyAPI.Web
|
|||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetFollowedArtists");
|
throw new InvalidOperationException("Auth is required for GetFollowedArtists");
|
||||||
return DownloadData<FollowedArtists>(_builder.GetFollowedArtists(followType, limit, after));
|
return DownloadData<FollowedArtists>(_builder.GetFollowedArtists(limit, after));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -487,11 +488,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="after">The last artist ID retrieved from the previous request.</param>
|
/// <param name="after">The last artist ID retrieved from the previous request.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<FollowedArtists> GetFollowedArtistsAsync(FollowType followType, int limit = 20, String after = "")
|
public async Task<FollowedArtists> GetFollowedArtistsAsync(FollowType followType, int limit = 20, String after = "")
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetFollowedArtists");
|
throw new InvalidOperationException("Auth is required for GetFollowedArtists");
|
||||||
return DownloadDataAsync<FollowedArtists>(_builder.GetFollowedArtists(followType, limit, after));
|
return await DownloadDataAsync<FollowedArtists>(_builder.GetFollowedArtists(limit, after));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -507,7 +508,7 @@ namespace SpotifyAPI.Web
|
|||||||
{
|
{
|
||||||
{"ids", new JArray(ids)}
|
{"ids", new JArray(ids)}
|
||||||
};
|
};
|
||||||
return UploadData<ErrorResponse>(_builder.Follow(followType, ids), ob.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
return UploadData<ErrorResponse>(_builder.Follow(followType), ob.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -517,14 +518,14 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="ids">A list of the artist or the user Spotify IDs</param>
|
/// <param name="ids">A list of the artist or the user Spotify IDs</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> FollowAsync(FollowType followType, List<String> ids)
|
public async Task<ErrorResponse> FollowAsync(FollowType followType, List<String> ids)
|
||||||
{
|
{
|
||||||
JObject ob = new JObject
|
JObject ob = new JObject
|
||||||
{
|
{
|
||||||
{"ids", new JArray(ids)}
|
{"ids", new JArray(ids)}
|
||||||
};
|
};
|
||||||
return
|
return await
|
||||||
UploadDataAsync<ErrorResponse>(_builder.Follow(followType, ids),
|
UploadDataAsync<ErrorResponse>(_builder.Follow(followType),
|
||||||
ob.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
ob.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -547,9 +548,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="id">Artists or the Users Spotify ID</param>
|
/// <param name="id">Artists or the Users Spotify ID</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> FollowAsync(FollowType followType, String id)
|
public async Task<ErrorResponse> FollowAsync(FollowType followType, String id)
|
||||||
{
|
{
|
||||||
return FollowAsync(followType, new List<string> { id });
|
return await FollowAsync(followType, new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -565,7 +566,7 @@ namespace SpotifyAPI.Web
|
|||||||
{
|
{
|
||||||
{"ids", new JArray(ids)}
|
{"ids", new JArray(ids)}
|
||||||
};
|
};
|
||||||
return UploadData<ErrorResponse>(_builder.Unfollow(followType, ids), ob.ToString(Formatting.None), "DELETE") ?? new ErrorResponse();
|
return UploadData<ErrorResponse>(_builder.Unfollow(followType), ob.ToString(Formatting.None), "DELETE") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -575,13 +576,13 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="ids">A list of the artist or the user Spotify IDs</param>
|
/// <param name="ids">A list of the artist or the user Spotify IDs</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> UnfollowAsync(FollowType followType, List<String> ids)
|
public async Task<ErrorResponse> UnfollowAsync(FollowType followType, List<String> ids)
|
||||||
{
|
{
|
||||||
JObject ob = new JObject
|
JObject ob = new JObject
|
||||||
{
|
{
|
||||||
{"ids", new JArray(ids)}
|
{"ids", new JArray(ids)}
|
||||||
};
|
};
|
||||||
return UploadDataAsync<ErrorResponse>(_builder.Unfollow(followType, ids), ob.ToString(Formatting.None), "DELETE") ?? new ErrorResponse();
|
return await UploadDataAsync<ErrorResponse>(_builder.Unfollow(followType), ob.ToString(Formatting.None), "DELETE") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -603,9 +604,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="id">Artists or the Users Spotify ID</param>
|
/// <param name="id">Artists or the Users Spotify ID</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> UnfollowAsync(FollowType followType, String id)
|
public async Task<ErrorResponse> UnfollowAsync(FollowType followType, String id)
|
||||||
{
|
{
|
||||||
return UnfollowAsync(followType, new List<string> { id });
|
return await UnfollowAsync(followType, new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -632,15 +633,14 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="ids">A list of the artist or the user Spotify IDs to check</param>
|
/// <param name="ids">A list of the artist or the user Spotify IDs to check</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ListResponse<Boolean>> IsFollowingAsync(FollowType followType, List<String> ids)
|
public async Task<ListResponse<Boolean>> IsFollowingAsync(FollowType followType, List<String> ids)
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for IsFollowing");
|
throw new InvalidOperationException("Auth is required for IsFollowing");
|
||||||
JToken res = DownloadDataAsync<JToken>(_builder.IsFollowing(followType, ids));
|
JToken res = await DownloadDataAsync<JToken>(_builder.IsFollowing(followType, ids));
|
||||||
# Compilebreaker
|
if (res is JArray)
|
||||||
if (res is JArray) //todo expression is always false
|
return new ListResponse<Boolean> { List = res.ToObject<List<Boolean>>(), Error = null };
|
||||||
return Task.FromResult(new ListResponse<Boolean> { List = res.ToObject<List<Boolean>>(), Error = null });
|
return new ListResponse<Boolean> { List = null, Error = res["error"].ToObject<Error>() };
|
||||||
return Task.FromResult(new ListResponse<Boolean> { List = null, Error = res["error"].ToObject<Error>() });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -662,9 +662,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="id">Artists or the Users Spotify ID</param>
|
/// <param name="id">Artists or the Users Spotify ID</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ListResponse<Boolean>> IsFollowingAsync(FollowType followType, String id)
|
public async Task<ListResponse<Boolean>> IsFollowingAsync(FollowType followType, String id)
|
||||||
{
|
{
|
||||||
return IsFollowingAsync(followType, new List<string> { id });
|
return await IsFollowingAsync(followType, new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -704,13 +704,13 @@ namespace SpotifyAPI.Web
|
|||||||
/// </param>
|
/// </param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> FollowPlaylistAsync(String ownerId, String playlistId, bool showPublic = true)
|
public async Task<ErrorResponse> FollowPlaylistAsync(String ownerId, String playlistId, bool showPublic = true)
|
||||||
{
|
{
|
||||||
JObject body = new JObject
|
JObject body = new JObject
|
||||||
{
|
{
|
||||||
{"public", showPublic}
|
{"public", showPublic}
|
||||||
};
|
};
|
||||||
return UploadDataAsync<ErrorResponse>(_builder.FollowPlaylist(ownerId, playlistId, showPublic), body.ToString(Formatting.None), "PUT");
|
return await UploadDataAsync<ErrorResponse>(_builder.FollowPlaylist(ownerId, playlistId, showPublic), body.ToString(Formatting.None), "PUT");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -732,9 +732,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="playlistId">The Spotify ID of the playlist that is to be no longer followed.</param>
|
/// <param name="playlistId">The Spotify ID of the playlist that is to be no longer followed.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> UnfollowPlaylistAsync(String ownerId, String playlistId)
|
public async Task<ErrorResponse> UnfollowPlaylistAsync(String ownerId, String playlistId)
|
||||||
{
|
{
|
||||||
return UploadDataAsync<ErrorResponse>(_builder.UnfollowPlaylist(ownerId, playlistId), "", "DELETE");
|
return await UploadDataAsync<ErrorResponse>(_builder.UnfollowPlaylist(ownerId, playlistId), "", "DELETE");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -763,15 +763,14 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="ids">A list of Spotify User IDs</param>
|
/// <param name="ids">A list of Spotify User IDs</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ListResponse<Boolean>> IsFollowingPlaylistAsync(String ownerId, String playlistId, List<String> ids)
|
public async Task<ListResponse<Boolean>> IsFollowingPlaylistAsync(String ownerId, String playlistId, List<String> ids)
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for IsFollowingPlaylist");
|
throw new InvalidOperationException("Auth is required for IsFollowingPlaylist");
|
||||||
JToken res = DownloadDataAsync<JToken>(_builder.IsFollowingPlaylist(ownerId, playlistId, ids));
|
JToken res = await DownloadDataAsync<JToken>(_builder.IsFollowingPlaylist(ownerId, playlistId, ids));
|
||||||
# Compilebreaker
|
if (res is JArray)
|
||||||
if (res is JArray) //todo expression is always false
|
return new ListResponse<Boolean> { List = res.ToObject<List<Boolean>>(), Error = null };
|
||||||
return Task.FromResult(new ListResponse<Boolean> { List = res.ToObject<List<Boolean>>(), Error = null });
|
return new ListResponse<Boolean> { List = null, Error = res["error"].ToObject<Error>() };
|
||||||
return Task.FromResult(new ListResponse<Boolean> { List = null, Error = res["error"].ToObject<Error>() });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -795,9 +794,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="id">A Spotify User ID</param>
|
/// <param name="id">A Spotify User ID</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ListResponse<Boolean>> IsFollowingPlaylistAsync(String ownerId, String playlistId, String id)
|
public async Task<ListResponse<Boolean>> IsFollowingPlaylistAsync(String ownerId, String playlistId, String id)
|
||||||
{
|
{
|
||||||
return IsFollowingPlaylistAsync(ownerId, playlistId, new List<string> { id });
|
return await IsFollowingPlaylistAsync(ownerId, playlistId, new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Follow
|
#endregion Follow
|
||||||
@ -813,7 +812,7 @@ namespace SpotifyAPI.Web
|
|||||||
public ErrorResponse SaveTracks(List<String> ids)
|
public ErrorResponse SaveTracks(List<String> ids)
|
||||||
{
|
{
|
||||||
JArray array = new JArray(ids);
|
JArray array = new JArray(ids);
|
||||||
return UploadData<ErrorResponse>(_builder.SaveTracks(array.ToString(Formatting.None), "PUT") ?? new ErrorResponse());
|
return UploadData<ErrorResponse>(_builder.SaveTracks(), array.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -822,10 +821,10 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="ids">A list of the Spotify IDs</param>
|
/// <param name="ids">A list of the Spotify IDs</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> SaveTracksAsync(List<String> ids)
|
public async Task<ErrorResponse> SaveTracksAsync(List<String> ids)
|
||||||
{
|
{
|
||||||
JArray array = new JArray(ids);
|
JArray array = new JArray(ids);
|
||||||
return UploadDataAsync<ErrorResponse>(_builder.SaveTracks(array.ToString(Formatting.None), "PUT") ?? new ErrorResponse());
|
return await UploadDataAsync<ErrorResponse>(_builder.SaveTracks(), array.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -845,9 +844,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="id">A Spotify ID</param>
|
/// <param name="id">A Spotify ID</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> SaveTrackAsync(String id)
|
public async Task<ErrorResponse> SaveTrackAsync(String id)
|
||||||
{
|
{
|
||||||
return SaveTracksAsync(new List<string> { id });
|
return await SaveTracksAsync(new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -873,11 +872,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<Paging<SavedTrack>> GetSavedTracksAsync(int limit = 20, int offset = 0, String market = "")
|
public async Task<Paging<SavedTrack>> GetSavedTracksAsync(int limit = 20, int offset = 0, String market = "")
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetSavedTracks");
|
throw new InvalidOperationException("Auth is required for GetSavedTracks");
|
||||||
return DownloadDataAsync<Paging<SavedTrack>>(_builder.GetSavedTracks(limit, offset, market));
|
return await DownloadDataAsync<Paging<SavedTrack>>(_builder.GetSavedTracks(limit, offset, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -889,7 +888,7 @@ namespace SpotifyAPI.Web
|
|||||||
public ErrorResponse RemoveSavedTracks(List<String> ids)
|
public ErrorResponse RemoveSavedTracks(List<String> ids)
|
||||||
{
|
{
|
||||||
JArray array = new JArray(ids);
|
JArray array = new JArray(ids);
|
||||||
return UploadData<ErrorResponse>(_builder.RemoveSavedTracks(array.ToString(Formatting.None), "DELETE") ?? new ErrorResponse());
|
return UploadData<ErrorResponse>(_builder.RemoveSavedTracks(), array.ToString(Formatting.None), "DELETE") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -898,10 +897,10 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="ids">A list of the Spotify IDs.</param>
|
/// <param name="ids">A list of the Spotify IDs.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> RemoveSavedTracksAsync(List<String> ids)
|
public async Task<ErrorResponse> RemoveSavedTracksAsync(List<String> ids)
|
||||||
{
|
{
|
||||||
JArray array = new JArray(ids);
|
JArray array = new JArray(ids);
|
||||||
return UploadDataAsync<ErrorResponse>(_builder.RemoveSavedTracks(array.ToString(Formatting.None), "DELETE") ?? new ErrorResponse());
|
return await UploadDataAsync<ErrorResponse>(_builder.RemoveSavedTracks(), array.ToString(Formatting.None), "DELETE") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -926,15 +925,14 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="ids">A list of the Spotify IDs.</param>
|
/// <param name="ids">A list of the Spotify IDs.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ListResponse<Boolean>> CheckSavedTracksAsync(List<String> ids)
|
public async Task<ListResponse<Boolean>> CheckSavedTracksAsync(List<String> ids)
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for CheckSavedTracks");
|
throw new InvalidOperationException("Auth is required for CheckSavedTracks");
|
||||||
JToken res = DownloadDataAsync<JToken>(_builder.CheckSavedTracks(ids));
|
JToken res = await DownloadDataAsync<JToken>(_builder.CheckSavedTracks(ids));
|
||||||
# Compilebreaker
|
if (res is JArray)
|
||||||
if (res is JArray) //todo expression is always false
|
return new ListResponse<Boolean> { List = res.ToObject<List<Boolean>>(), Error = null };
|
||||||
return Task.FromResult(new ListResponse<Boolean> { List = res.ToObject<List<Boolean>>(), Error = null });
|
return new ListResponse<Boolean> { List = null, Error = res["error"].ToObject<Error>() };
|
||||||
return Task.FromResult(new ListResponse<Boolean> { List = null, Error = res["error"].ToObject<Error>() });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Library
|
#endregion Library
|
||||||
@ -964,11 +962,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="offset">The index of the first playlist to return. Default: 0 (the first object)</param>
|
/// <param name="offset">The index of the first playlist to return. Default: 0 (the first object)</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<Paging<SimplePlaylist>> GetUserPlaylistsAsync(String userId, int limit = 20, int offset = 0)
|
public async Task<Paging<SimplePlaylist>> GetUserPlaylistsAsync(String userId, int limit = 20, int offset = 0)
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetUserPlaylists");
|
throw new InvalidOperationException("Auth is required for GetUserPlaylists");
|
||||||
return DownloadDataAsync<Paging<SimplePlaylist>>(_builder.GetUserPlaylists(userId, limit, offset));
|
return await DownloadDataAsync<Paging<SimplePlaylist>>(_builder.GetUserPlaylists(userId, limit, offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1002,11 +1000,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<FullPlaylist> GetPlaylistAsync(String userId, String playlistId, String fields = "", String market = "")
|
public async Task<FullPlaylist> GetPlaylistAsync(String userId, String playlistId, String fields = "", String market = "")
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetPlaylist");
|
throw new InvalidOperationException("Auth is required for GetPlaylist");
|
||||||
return DownloadDataAsync<FullPlaylist>(_builder.GetPlaylist(userId, playlistId, fields, market));
|
return await DownloadDataAsync<FullPlaylist>(_builder.GetPlaylist(userId, playlistId, fields, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1044,11 +1042,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<Paging<PlaylistTrack>> GetPlaylistTracksAsync(String userId, String playlistId, String fields = "", int limit = 100, int offset = 0, String market = "")
|
public async Task<Paging<PlaylistTrack>> GetPlaylistTracksAsync(String userId, String playlistId, String fields = "", int limit = 100, int offset = 0, String market = "")
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetPlaylistTracks");
|
throw new InvalidOperationException("Auth is required for GetPlaylistTracks");
|
||||||
return DownloadDataAsync<Paging<PlaylistTrack>>(_builder.GetPlaylistTracks(userId, playlistId, fields, limit, offset, market));
|
return await DownloadDataAsync<Paging<PlaylistTrack>>(_builder.GetPlaylistTracks(userId, playlistId, fields, limit, offset, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1089,14 +1087,14 @@ namespace SpotifyAPI.Web
|
|||||||
/// </param>
|
/// </param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<FullPlaylist> CreatePlaylistAsync(String userId, String playlistName, Boolean isPublic = true)
|
public async Task<FullPlaylist> CreatePlaylistAsync(String userId, String playlistName, Boolean isPublic = true)
|
||||||
{
|
{
|
||||||
JObject body = new JObject
|
JObject body = new JObject
|
||||||
{
|
{
|
||||||
{"name", playlistName},
|
{"name", playlistName},
|
||||||
{"public", isPublic}
|
{"public", isPublic}
|
||||||
};
|
};
|
||||||
return UploadDataAsync<FullPlaylist>(_builder.CreatePlaylist(userId, playlistName, isPublic), body.ToString(Formatting.None));
|
return await UploadDataAsync<FullPlaylist>(_builder.CreatePlaylist(userId, playlistName, isPublic), body.ToString(Formatting.None));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1115,7 +1113,7 @@ namespace SpotifyAPI.Web
|
|||||||
body.Add("name", newName);
|
body.Add("name", newName);
|
||||||
if (newPublic != null)
|
if (newPublic != null)
|
||||||
body.Add("public", newPublic);
|
body.Add("public", newPublic);
|
||||||
return UploadData<ErrorResponse>(_builder.UpdatePlaylist(userId, playlistId, newName, newPublic), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
return UploadData<ErrorResponse>(_builder.UpdatePlaylist(userId, playlistId), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1127,14 +1125,14 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="newPublic">If true the playlist will be public, if false it will be private.</param>
|
/// <param name="newPublic">If true the playlist will be public, if false it will be private.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> UpdatePlaylistAsync(String userId, String playlistId, String newName = null, Boolean? newPublic = null)
|
public async Task<ErrorResponse> UpdatePlaylistAsync(String userId, String playlistId, String newName = null, Boolean? newPublic = null)
|
||||||
{
|
{
|
||||||
JObject body = new JObject();
|
JObject body = new JObject();
|
||||||
if (newName != null)
|
if (newName != null)
|
||||||
body.Add("name", newName);
|
body.Add("name", newName);
|
||||||
if (newPublic != null)
|
if (newPublic != null)
|
||||||
body.Add("public", newPublic);
|
body.Add("public", newPublic);
|
||||||
return UploadDataAsync<ErrorResponse>(_builder.UpdatePlaylist(userId, playlistId, newName, newPublic), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
return await UploadDataAsync<ErrorResponse>(_builder.UpdatePlaylist(userId, playlistId), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1152,7 +1150,7 @@ namespace SpotifyAPI.Web
|
|||||||
{
|
{
|
||||||
{"uris", new JArray(uris.Take(100))}
|
{"uris", new JArray(uris.Take(100))}
|
||||||
};
|
};
|
||||||
return UploadData<ErrorResponse>(_builder.ReplacePlaylistTracks(userId, playlistId, uris), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
return UploadData<ErrorResponse>(_builder.ReplacePlaylistTracks(userId, playlistId), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1164,13 +1162,13 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="uris">A list of Spotify track URIs to set. A maximum of 100 tracks can be set in one request.</param>
|
/// <param name="uris">A list of Spotify track URIs to set. A maximum of 100 tracks can be set in one request.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> ReplacePlaylistTracksAsync(String userId, String playlistId, List<String> uris)
|
public async Task<ErrorResponse> ReplacePlaylistTracksAsync(String userId, String playlistId, List<String> uris)
|
||||||
{
|
{
|
||||||
JObject body = new JObject
|
JObject body = new JObject
|
||||||
{
|
{
|
||||||
{"uris", new JArray(uris.Take(100))}
|
{"uris", new JArray(uris.Take(100))}
|
||||||
};
|
};
|
||||||
return UploadDataAsync<ErrorResponse>(_builder.ReplacePlaylistTracks(userId, playlistId, uris), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
return await UploadDataAsync<ErrorResponse>(_builder.ReplacePlaylistTracks(userId, playlistId), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1204,13 +1202,13 @@ namespace SpotifyAPI.Web
|
|||||||
/// </param>
|
/// </param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> RemovePlaylistTracksAsync(String userId, String playlistId, List<DeleteTrackUri> uris)
|
public async Task<ErrorResponse> RemovePlaylistTracksAsync(String userId, String playlistId, List<DeleteTrackUri> uris)
|
||||||
{
|
{
|
||||||
JObject body = new JObject
|
JObject body = new JObject
|
||||||
{
|
{
|
||||||
{"tracks", JArray.FromObject(uris.Take(100))}
|
{"tracks", JArray.FromObject(uris.Take(100))}
|
||||||
};
|
};
|
||||||
return UploadDataAsync<ErrorResponse>(_builder.RemovePlaylistTracks(userId, playlistId, uris), body.ToString(Formatting.None), "DELETE") ?? new ErrorResponse();
|
return await UploadDataAsync<ErrorResponse>(_builder.RemovePlaylistTracks(userId, playlistId, uris), body.ToString(Formatting.None), "DELETE") ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1234,9 +1232,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="uri">Spotify URI</param>
|
/// <param name="uri">Spotify URI</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> RemovePlaylistTrackAsync(String userId, String playlistId, DeleteTrackUri uri)
|
public async Task<ErrorResponse> RemovePlaylistTrackAsync(String userId, String playlistId, DeleteTrackUri uri)
|
||||||
{
|
{
|
||||||
return RemovePlaylistTracksAsync(userId, playlistId, new List<DeleteTrackUri> { uri });
|
return await RemovePlaylistTracksAsync(userId, playlistId, new List<DeleteTrackUri> { uri });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1266,13 +1264,13 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="position">The position to insert the tracks, a zero-based index</param>
|
/// <param name="position">The position to insert the tracks, a zero-based index</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> AddPlaylistTracksAsync(String userId, String playlistId, List<String> uris, int? position = null)
|
public async Task<ErrorResponse> AddPlaylistTracksAsync(String userId, String playlistId, List<String> uris, int? position = null)
|
||||||
{
|
{
|
||||||
JObject body = new JObject
|
JObject body = new JObject
|
||||||
{
|
{
|
||||||
{"uris", JArray.FromObject(uris.Take(100))}
|
{"uris", JArray.FromObject(uris.Take(100))}
|
||||||
};
|
};
|
||||||
return UploadDataAsync<ErrorResponse>(_builder.AddPlaylistTracks(userId, playlistId, uris, position), body.ToString(Formatting.None)) ?? new ErrorResponse();
|
return await UploadDataAsync<ErrorResponse>(_builder.AddPlaylistTracks(userId, playlistId, uris, position), body.ToString(Formatting.None)) ?? new ErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1298,9 +1296,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="position">The position to insert the tracks, a zero-based index</param>
|
/// <param name="position">The position to insert the tracks, a zero-based index</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<ErrorResponse> AddPlaylistTrackAsync(String userId, String playlistId, String uri, int? position = null)
|
public async Task<ErrorResponse> AddPlaylistTrackAsync(String userId, String playlistId, String uri, int? position = null)
|
||||||
{
|
{
|
||||||
return AddPlaylistTracksAsync(userId, playlistId, new List<string> { uri }, position);
|
return await AddPlaylistTracksAsync(userId, playlistId, new List<string> { uri }, position);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1324,7 +1322,7 @@ namespace SpotifyAPI.Web
|
|||||||
};
|
};
|
||||||
if (!String.IsNullOrEmpty(snapshotId))
|
if (!String.IsNullOrEmpty(snapshotId))
|
||||||
body.Add("snapshot_id", snapshotId);
|
body.Add("snapshot_id", snapshotId);
|
||||||
return UploadData<Snapshot>(_builder.ReorderPlaylist(userId, playlistId, rangeStart, insertBefore, rangeLength, snapshotId), body.ToString(Formatting.None), "PUT");
|
return UploadData<Snapshot>(_builder.ReorderPlaylist(userId, playlistId), body.ToString(Formatting.None), "PUT");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1338,15 +1336,18 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="snapshotId">The playlist's snapshot ID against which you want to make the changes.</param>
|
/// <param name="snapshotId">The playlist's snapshot ID against which you want to make the changes.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<Snapshot> ReorderPlaylistAsync(String userId, String playlistId, int rangeStart, int insertBefore, int rangeLength = 1, String snapshotId = "")
|
public async Task<Snapshot> ReorderPlaylistAsync(String userId, String playlistId, int rangeStart, int insertBefore, int rangeLength = 1, String snapshotId = "")
|
||||||
{
|
{
|
||||||
JObject body = new JObject
|
JObject body = new JObject
|
||||||
{
|
{
|
||||||
{"range_start", rangeStart},
|
{"range_start", rangeStart},
|
||||||
{"range_length", rangeLength},
|
{"range_length", rangeLength},
|
||||||
{"insert_before", insertBefore}
|
{"insert_before", insertBefore},
|
||||||
|
{"snapshot_id", snapshotId}
|
||||||
};
|
};
|
||||||
return UploadDataAsync<Snapshot>(_builder.ReorderPlaylist(userId, playlistId, rangeStart, insertBefore, rangeLength, snapshotId), body.ToString(Formatting.None), "PUT");
|
if (!String.IsNullOrEmpty(snapshotId))
|
||||||
|
body.Add("snapshot_id", snapshotId);
|
||||||
|
return await UploadDataAsync<Snapshot>(_builder.ReorderPlaylist(userId, playlistId), body.ToString(Formatting.None), "PUT");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Playlists
|
#endregion Playlists
|
||||||
@ -1370,11 +1371,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public Task<PrivateProfile> GetPrivateProfileAsync()
|
public async Task<PrivateProfile> GetPrivateProfileAsync()
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetPrivateProfile");
|
throw new InvalidOperationException("Auth is required for GetPrivateProfile");
|
||||||
return DownloadDataAsync<PrivateProfile>(_builder.GetPrivateProfile());
|
return await DownloadDataAsync<PrivateProfile>(_builder.GetPrivateProfile());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1392,9 +1393,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userId">The user's Spotify user ID.</param>
|
/// <param name="userId">The user's Spotify user ID.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<PublicProfile> GetPublicProfileAsync(String userId)
|
public async Task<PublicProfile> GetPublicProfileAsync(String userId)
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<PublicProfile>(_builder.GetPublicProfile(userId));
|
return await DownloadDataAsync<PublicProfile>(_builder.GetPublicProfile(userId));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Profiles
|
#endregion Profiles
|
||||||
@ -1418,9 +1419,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="ids">A list of the Spotify IDs for the tracks. Maximum: 50 IDs.</param>
|
/// <param name="ids">A list of the Spotify IDs for the tracks. Maximum: 50 IDs.</param>
|
||||||
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<SeveralTracks> GetSeveralTracksAsync(List<String> ids, String market = "")
|
public async Task<SeveralTracks> GetSeveralTracksAsync(List<String> ids, String market = "")
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<SeveralTracks>(_builder.GetSeveralTracks(ids, market));
|
return await DownloadDataAsync<SeveralTracks>(_builder.GetSeveralTracks(ids, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -1440,15 +1441,25 @@ namespace SpotifyAPI.Web
|
|||||||
/// <param name="id">The Spotify ID for the track.</param>
|
/// <param name="id">The Spotify ID for the track.</param>
|
||||||
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
/// <param name="market">An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<FullTrack> GetTrackAsync(String id, String market = "")
|
public async Task<FullTrack> GetTrackAsync(String id, String market = "")
|
||||||
{
|
{
|
||||||
return DownloadDataAsync<FullTrack>(_builder.GetTrack(id, market));
|
return await DownloadDataAsync<FullTrack>(_builder.GetTrack(id, market));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Tracks
|
#endregion Tracks
|
||||||
|
|
||||||
#region Util
|
#region Util
|
||||||
|
|
||||||
|
public Paging<T> Next<T>(Paging<T> paging)
|
||||||
|
{
|
||||||
|
return DownloadData<Paging<T>>(paging.Next);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Paging<T> Previous<T>(Paging<T> paging)
|
||||||
|
{
|
||||||
|
return DownloadData<Paging<T>>(paging.Previous);
|
||||||
|
}
|
||||||
|
|
||||||
public T UploadData<T>(String url, String uploadData, String method = "POST")
|
public T UploadData<T>(String url, String uploadData, String method = "POST")
|
||||||
{
|
{
|
||||||
if (!UseAuth)
|
if (!UseAuth)
|
||||||
|
@ -391,10 +391,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Save one or more tracks to the current user’s “Your Music” library.
|
/// Save one or more tracks to the current user’s “Your Music” library.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ids">A list of the Spotify IDs</param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public string SaveTracks(List<String> ids)
|
public string SaveTracks()
|
||||||
{
|
{
|
||||||
return APIBase + "/me/tracks/";
|
return APIBase + "/me/tracks/";
|
||||||
}
|
}
|
||||||
@ -421,10 +420,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Remove one or more tracks from the current user’s “Your Music” library.
|
/// Remove one or more tracks from the current user’s “Your Music” library.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ids">A list of the Spotify IDs.</param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public string RemoveSavedTracks(List<String> ids)
|
public string RemoveSavedTracks()
|
||||||
{
|
{
|
||||||
return APIBase + "/me/tracks/";
|
return APIBase + "/me/tracks/";
|
||||||
}
|
}
|
||||||
@ -532,11 +530,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userId">The user's Spotify user ID.</param>
|
/// <param name="userId">The user's Spotify user ID.</param>
|
||||||
/// <param name="playlistId">The Spotify ID for the playlist.</param>
|
/// <param name="playlistId">The Spotify ID for the playlist.</param>
|
||||||
/// <param name="newName">The new name for the playlist, for example "My New Playlist Title".</param>
|
|
||||||
/// <param name="newPublic">If true the playlist will be public, if false it will be private.</param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public string UpdatePlaylist(String userId, String playlistId, String newName = null, Boolean? newPublic = null)
|
public string UpdatePlaylist(String userId, String playlistId)
|
||||||
{
|
{
|
||||||
return $"{APIBase}/users/{userId}/playlists/{playlistId}";
|
return $"{APIBase}/users/{userId}/playlists/{playlistId}";
|
||||||
}
|
}
|
||||||
@ -547,10 +543,9 @@ namespace SpotifyAPI.Web
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userId">The user's Spotify user ID.</param>
|
/// <param name="userId">The user's Spotify user ID.</param>
|
||||||
/// <param name="playlistId">The Spotify ID for the playlist.</param>
|
/// <param name="playlistId">The Spotify ID for the playlist.</param>
|
||||||
/// <param name="uris">A list of Spotify track URIs to set. A maximum of 100 tracks can be set in one request.</param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public string ReplacePlaylistTracks(String userId, String playlistId, List<String> uris)
|
public string ReplacePlaylistTracks(String userId, String playlistId)
|
||||||
{
|
{
|
||||||
return $"{APIBase}/users/{userId}/playlists/{playlistId}/tracks";
|
return $"{APIBase}/users/{userId}/playlists/{playlistId}/tracks";
|
||||||
}
|
}
|
||||||
@ -592,15 +587,11 @@ namespace SpotifyAPI.Web
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userId">The user's Spotify user ID.</param>
|
/// <param name="userId">The user's Spotify user ID.</param>
|
||||||
/// <param name="playlistId">The Spotify ID for the playlist.</param>
|
/// <param name="playlistId">The Spotify ID for the playlist.</param>
|
||||||
/// <param name="rangeStart">The position of the first track to be reordered.</param>
|
|
||||||
/// <param name="insertBefore">The position where the tracks should be inserted. </param>
|
|
||||||
/// <param name="rangeLength">The amount of tracks to be reordered. Defaults to 1 if not set.</param>
|
|
||||||
/// <param name="snapshotId">The playlist's snapshot ID against which you want to make the changes.</param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public string ReorderPlaylist(String userId, String playlistId, int rangeStart, int insertBefore, int rangeLength = 1, String snapshotId = "")
|
public string ReorderPlaylist(String userId, String playlistId)
|
||||||
{
|
{
|
||||||
return APIBase + "/users/" + userId + "/playlists/" + playlistId + "/tracks";
|
return $"{APIBase}/users/{userId}/playlists/{playlistId}/tracks";
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Playlists
|
#endregion Playlists
|
||||||
|
Loading…
Reference in New Issue
Block a user