using System.Threading; using System.Threading.Tasks; namespace SpotifyAPI.Web { /// /// Endpoints for retrieving information about a user’s profile. /// /// https://developer.spotify.com/documentation/web-api/reference-beta/#category-user-profile public interface IUserProfileClient { /// /// Get detailed profile information about the current user (including the current user’s username). /// /// The cancellation-token to allow to cancel the request. /// /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-current-users-profile /// /// Thrown if the client is not authenticated. Task Current(CancellationToken cancel = default); /// /// Get public profile information about a Spotify user. /// /// The user id. /// The cancellation-token to allow to cancel the request. /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-users-profile /// Thrown if the client is not authenticated. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716")] Task Get(string userId, CancellationToken cancel = default); /// /// Get Top tracks for the current user /// /// The query params to send to get Top Artists /// The cancellation-token to allow to cancel the request. /// https://developer.spotify.com/documentation/web-api/reference/get-users-top-artists-and-tracks /// Thrown if the client is not authenticated. Task GetTopTracks(UsersTopItemsRequest request, CancellationToken cancel = default); /// /// Get Top arsists for the current user /// /// The query params to send to get Top Artists /// The cancellation-token to allow to cancel the request. /// https://developer.spotify.com/documentation/web-api/reference/get-users-top-artists-and-tracks /// Thrown if the client is not authenticated. Task GetTopArtists(UsersTopItemsRequest request, CancellationToken cancel = default); } }