using System.Threading.Tasks; using SpotifyAPI.Web.Http; using URLs = SpotifyAPI.Web.SpotifyUrls; namespace SpotifyAPI.Web { public class TracksClient : APIClient, ITracksClient { public TracksClient(IAPIConnector apiConnector) : base(apiConnector) { } public Task Get(string trackId) { Ensure.ArgumentNotNullOrEmptyString(trackId, nameof(trackId)); return API.Get(URLs.Track(trackId)); } public Task Get(string trackId, TrackRequest request) { Ensure.ArgumentNotNullOrEmptyString(trackId, nameof(trackId)); Ensure.ArgumentNotNull(request, nameof(request)); return API.Get(URLs.Track(trackId), request.BuildQueryParams()); } public Task GetAudioAnalysis(string trackId) { Ensure.ArgumentNotNullOrEmptyString(trackId, nameof(trackId)); return API.Get(URLs.AudioAnalysis(trackId)); } public Task GetAudioFeatures(string trackId) { Ensure.ArgumentNotNullOrEmptyString(trackId, nameof(trackId)); return API.Get(URLs.AudioFeatures(trackId)); } public Task GetSeveral(TracksRequest request) { Ensure.ArgumentNotNull(request, nameof(request)); return API.Get(URLs.Tracks(), request.BuildQueryParams()); } public Task GetSeveralAudioFeatures(TracksAudioFeaturesRequest request) { Ensure.ArgumentNotNull(request, nameof(request)); return API.Get(URLs.AudioFeatures(), request.BuildQueryParams()); } } }