using System.Threading; using System.Threading.Tasks; using SpotifyAPI.Web.Http; namespace SpotifyAPI.Web { public class UserProfileClient : APIClient, IUserProfileClient { public UserProfileClient(IAPIConnector apiConnector) : base(apiConnector) { } public Task Current(CancellationToken cancel = default) { return API.Get(SpotifyUrls.Me(), cancel); } public Task Get(string userId, CancellationToken cancel = default) { Ensure.ArgumentNotNullOrEmptyString(userId, nameof(userId)); return API.Get(SpotifyUrls.User(userId), cancel); } public Task GetTopTracks(UsersTopItemsRequest request, CancellationToken cancel = default) { Ensure.ArgumentNotNull(request, nameof(request)); return API.Get(SpotifyUrls.TopTracks(), request.BuildQueryParams(), cancel); } public Task GetTopArtists(UsersTopItemsRequest request, CancellationToken cancel = default) { Ensure.ArgumentNotNull(request, nameof(request)); return API.Get(SpotifyUrls.TopArtists(), request.BuildQueryParams(), cancel); } } }