using System.Net.Http; using System.Threading.Tasks; using Flurl; using Sony.Filtr.Contracts.Entities; namespace Sony.Filtr.Core.Moodagent { public class MoodagentApi { private const string AppId = "51053c91"; private const string AppKey = "16da28b24f0187d367fe63df9df037c0"; public MoodagentApi() { } public async Task GetPlaylistsRecommendationsFromTrackAsync(SpotifyLink track, int limit, int offset) { var httpClient = new HttpClient(); var url = new Url("https://developers2.moodagent.com/api/v1/recommendation/playlist/track/"); url.AppendPathSegment(track.ExtractTrackID()); var page = (offset/limit) + 1; url.SetQueryParam("page", page); url.SetQueryParam("length", limit); url.SetQueryParam("appID", AppId); url.SetQueryParam("appKey", AppKey); //url.SetQueryParam("debug", true.ToString()); var response = await httpClient.GetAsync(url); response.EnsureSuccessStatusCode(); var playlistRecommendationResponse = await response.Content.ReadAsAsync(); return playlistRecommendationResponse; } public async Task GetTrackRecommendationsFromPlaylistAsync(SpotifyLink playlists, int limit, int offset) { var httpClient = new HttpClient(); var url = new Url("https://developers2.moodagent.com/api/v1/recommendation/track/playlist/"); url.AppendPathSegment(playlists.ExtractPlaylistID()); var page = (offset / limit) + 1; url.SetQueryParam("page", page); url.SetQueryParam("length", limit); url.SetQueryParam("appID", AppId); url.SetQueryParam("appKey", AppKey); //url.SetQueryParam("debug", true.ToString()); var response = await httpClient.GetAsync(url); response.EnsureSuccessStatusCode(); var trackRecommendationResponse = await response.Content.ReadAsAsync(); return trackRecommendationResponse; } } }