public void GetSpotifyListeningHistoryWithAfterParameter_CorrectListeningHistoryReturned() { // Get spotify auth token var spotifyTokenAsJson = sut.GetSpotifyAuthenticationToken(); spotifyTokenAsJson.Result.Should().NotBeNull(); spotifyTokenAsJson.Result.Value.Should().NotBe(string.Empty); spotifyAuthenticationToken = JsonConvert.DeserializeObject <SpotifyAuthenticationToken>((string)spotifyTokenAsJson.Result.Value); spotifyAuthenticationToken.AccessToken.Should().NotBeNullOrEmpty(); // Get listening history with after parameter var listeningHistory0Task = sut.GetSpotifyRecentlyPlayed(spotifyAuthenticationToken); var listeningHistory0Json = JsonConvert.SerializeObject(listeningHistory0Task.Result.Value); var listeningHistory0 = JsonConvert.DeserializeObject <CursorPaging <PlayHistoryItem> >(listeningHistory0Json); listeningHistory0.Items.Should().NotBeNull(); var nowMinus7Days = DateTime.UtcNow.AddHours(-5); var after = ((DateTimeOffset)nowMinus7Days).ToUnixTimeMilliseconds(); var listeningHistory1Task = sut.GetSpotifyRecentlyPlayed(spotifyAuthenticationToken, after); var listeningHistory1Json = JsonConvert.SerializeObject(listeningHistory1Task.Result.Value); var listeningHistory1 = JsonConvert.DeserializeObject <CursorPaging <PlayHistoryItem> >(listeningHistory1Json); listeningHistory1.Items.Should().NotBeNull(); listeningHistory1.Items.Should().NotBeEquivalentTo(listeningHistory0.Items); }
public AuthenticationHeaderValue getHeaderAuthentication() { if (DateTime.Now > _expires) { HttpWebResponse resp = webRequest(authKey.urlToken); string json = string.Empty; using (Stream respStr = resp.GetResponseStream()) { using (StreamReader rdr = new StreamReader(respStr, Encoding.UTF8)) { //should get back a string i can then turn to json and parse for accesstoken json = rdr.ReadToEnd(); rdr.Close(); } } //Console.WriteLine(json); //Console.ReadKey(); _token = JsonConvert.DeserializeObject <SpotifyAuthenticationToken>(json); set_Expires(); } else { Console.WriteLine("No need to getToken"); } return(new AuthenticationHeaderValue("Authorization", "Bearer " + _token.access_token)); //_token.access_token; }
/// <inheritdoc/> public async Task <JsonResult> GetSpotifyRecentlyPlayed(SpotifyAuthenticationToken authToken, long?after = null) { await Task.Delay(0); var requesturiString = string.Format("http://localhost:2222/v1/me/player/recently-played?after={0}", after); var musicHistory = externalAPICaller.Get <CursorPaging <FakeResponseServer.DTO.PlayHistoryItem> >(new Uri(requesturiString)); var correctMusicHistory = new CursorPaging <PlayHistoryItem> { Items = new List <PlayHistoryItem>() }; foreach (var item in musicHistory.Items) { correctMusicHistory.Items.Add(new PlayHistoryItem { Context = new Context { ExternalUrls = new Dictionary <string, string>(), Href = item.Context.Href, Type = item.Context.Type, Uri = item.Context.Uri }, PlayedAt = (DateTime)item.PlayedAt, Track = new SimpleTrack { Artists = new List <SimpleArtist>(), AvailableMarkets = new List <string>(), DiscNumber = item.Track.DiscNumber, DurationMs = item.Track.DurationMs, Explicit = item.Track.Explicit, ExternalUrls = new Dictionary <string, string>(), Href = item.Track.Href, Id = item.Track.Id, IsPlayable = item.Track.IsPlayable, LinkedFrom = new LinkedTrack { ExternalUrls = new Dictionary <string, string>(), Href = item.Track.LinkedFrom.Href, Id = item.Track.LinkedFrom.Id, Type = item.Track.LinkedFrom.Type, Uri = item.Track.LinkedFrom.Uri, }, Name = item.Track.Name, PreviewUrl = item.Track.PreviewUrl, TrackNumber = item.Track.TrackNumber, Type = ItemType.Track, Uri = item.Track.Uri } });; } return(new JsonResult(correctMusicHistory)); }
/// <inheritdoc/> public async Task <JsonResult> GetSpotifyRecentlyPlayed(SpotifyAuthenticationToken authToken, long?after = null) { var request = new PlayerRecentlyPlayedRequest { After = after, Limit = 50 }; var spotifyClient = new SpotifyClient(authToken.AccessToken); var listeningHistory = await spotifyClient.Player.GetRecentlyPlayed(request); return(new JsonResult(listeningHistory)); }
public void GetSpotifyListeningHistory_ListeningHistoryRetrieved() { // Get spotify auth token var spotifyTokenAsJson = sut.GetSpotifyAuthenticationToken(); spotifyTokenAsJson.Result.Should().NotBeNull(); spotifyTokenAsJson.Result.Value.Should().NotBe(string.Empty); spotifyAuthenticationToken = JsonConvert.DeserializeObject <SpotifyAuthenticationToken>((string)spotifyTokenAsJson.Result.Value); spotifyAuthenticationToken.AccessToken.Should().NotBeNullOrEmpty(); // Get listening history var listeningHistory = sut.GetSpotifyRecentlyPlayed(spotifyAuthenticationToken); listeningHistory.Result.Value.Should().NotBeNull(); listeningHistory.Result.Value.Should().NotBe(string.Empty); }
public JsonResult GetSpotifyRecentlyPlayed(string access_token, DateTimeOffset?after = null, double?duration = null) { CursorPaging <PlayHistoryItem> playHistory = new CursorPaging <PlayHistoryItem>(); var tempToken = new SpotifyAuthenticationToken { AccessToken = access_token }; if (after != null) { DateTimeOffset actualAfter = (DateTimeOffset)after; var afterAsUnix = actualAfter.ToUnixTimeMilliseconds(); playHistory = (CursorPaging <PlayHistoryItem>) this.dataSource.GetSpotifyRecentlyPlayed(tempToken, afterAsUnix).Result.Value; if (duration != null) { var actualDuration = (double)duration; var end = actualAfter.AddSeconds(actualDuration); var validSongs = new List <PlayHistoryItem>(); foreach (var track in playHistory.Items) { if (track.PlayedAt >= actualAfter && track.PlayedAt < end) { validSongs.Add(track); } } playHistory.Items = validSongs; return(new JsonResult(playHistory)); } return(new JsonResult(playHistory)); } else { playHistory = (CursorPaging <PlayHistoryItem>) this.dataSource.GetSpotifyRecentlyPlayed(tempToken, null).Result.Value; return(new JsonResult(playHistory)); } }
public void SetUpTests() { var now = DateTime.UtcNow; var now_local = DateTime.Now; var offset = -2; foreach (var item in PlayHistoryItems) { item.PlayedAt = now.AddDays(offset); offset++; } foreach (var item in ActivityItems) { item.start_date = now; item.start_date_local = now_local; } foreach (var item in FitBitActivityItems) { item.StartTime = now; item.OriginalStartTime = now; item.LastModified = now; } offset = -1; foreach (var item in LastFMTrackItems) { item.TimePlayed = now.AddDays(offset); offset++; } RegisterMusicHistory(PlayHistoryItems); RegisterActivityHistory(ActivityItems); RegisterFitBitHistory(FitBitActivityItems); RegisterLastFMTracks(LastFMTrackItems); sut = MakeSut(); // Get spotify auth token. var spotifyAuthTask = sut.GetSpotifyAuthenticationToken(); spotifyAuthTask.Result.Should().NotBeNull(); spotifyAuthTask.Result.Value.Should().NotBe(string.Empty); var temp = JsonConvert.SerializeObject(spotifyAuthTask.Result.Value); spotifyAuthToken = JsonConvert.DeserializeObject <SpotifyAuthenticationToken>(temp); spotifyAuthToken.AccessToken.Should().NotBeNullOrEmpty(); // Get strava auth token. var stravaAuthTask = sut.GetStravaAuthenticationToken(); stravaAuthTask.Result.Should().NotBeNull(); stravaAuthTask.Result.Value.Should().NotBeNull(); temp = JsonConvert.SerializeObject(stravaAuthTask.Result.Value); stravaAuthToken = JsonConvert.DeserializeObject <StravaAuthenticationToken>(temp); stravaAuthToken.access_token.Should().NotBeNullOrEmpty(); // Get FitBit auth token. var fitBitAuthTask = sut.GetFitBitAuthenticationToken(); fitBitAuthTask.Result.Should().NotBeNull(); fitBitAuthTask.Result.Value.Should().NotBeNull(); temp = JsonConvert.SerializeObject(fitBitAuthTask.Result.Value); fitBitAuthToken = JsonConvert.DeserializeObject <FitBitAuthenticationToken>(temp); fitBitAuthToken.AccessToken.Should().NotBeNullOrEmpty(); }