using Flurl; using Newtonsoft.Json; using Sony.Filtr.AdminSearch.Models; using Sony.Filtr.ApolloAPI; using Sony.Filtr.DspWebAPI.DspModels; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading.Tasks; namespace Sony.Filtr.DspWebAPI { public class DspWebApi : ApolloWebApiBase, IDspWebApi { private enum VendorTypes { spotify } public DspWebApi(HttpClient httpClient) : base(httpClient) { } protected override string GetLoggerName() { return "DspWebApi"; } public async Task> GetAmazonPlaylists(int limit, int offset) { var url = new Url("dsp-api/delphi/playlists"); url.SetQueryParam("limit", limit); url.SetQueryParam("offset", offset); url.SetQueryParam("dsp", "amazon"); url.SetQueryParam("sort_by", "dsp_playlist_id"); return (await this.GetDataFromDsp(url)).items.Select(x=> new AmazonPlaylistIndexItem(x)).ToList(); } public async Task GetSpotifyPlaylistsSummaryAsync(string isrc, DateTime startDate, DateTime endDate, string market) { return await this.GetPlaylistsSummaryAsync(VendorTypes.spotify, isrc, startDate, endDate, market); } private async Task GetPlaylistsSummaryAsync(VendorTypes vendorType, string isrc, DateTime startDate, DateTime endDate, string market) { //https://qa-proxy.apollo.stream/dsp-api/consumer_analytics/v1/playlists-summary?isrc=USSM12105970&vendor=spotify&start_date=2022-07-02&end_date=2022-07-02&market=us var url = new Url("dsp-api/consumer_analytics/v1/playlists-summary"); url.SetQueryParam("isrc", isrc); url.SetQueryParam("vendor", vendorType); url.SetQueryParam("start_date", startDate.ToString("yyyy-MM-dd")); url.SetQueryParam("end_date", endDate.ToString("yyyy-MM-dd")); url.SetQueryParam("market", market); return await this.GetDataFromDsp(url); } private async Task GetDataFromDsp(string url) where T : class { return await this.GetFromApollo(url, ParseResponse, NoCacheTime); } } }