diff --git a/SpotifyAPI.Web/Clients/Interfaces/IPlayerClient.cs b/SpotifyAPI.Web/Clients/Interfaces/IPlayerClient.cs index de7d9ca2..df2aae01 100644 --- a/SpotifyAPI.Web/Clients/Interfaces/IPlayerClient.cs +++ b/SpotifyAPI.Web/Clients/Interfaces/IPlayerClient.cs @@ -204,5 +204,14 @@ namespace SpotifyAPI.Web /// /// Task AddToQueue(PlayerAddToQueueRequest request); + + /// + /// Get the list of objects that make up the user's queue. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference/#/operations/get-queue + /// + /// + Task GetQueue(); } } diff --git a/SpotifyAPI.Web/Clients/PlayerClient.cs b/SpotifyAPI.Web/Clients/PlayerClient.cs index 87b3318e..b9e4248d 100644 --- a/SpotifyAPI.Web/Clients/PlayerClient.cs +++ b/SpotifyAPI.Web/Clients/PlayerClient.cs @@ -17,6 +17,11 @@ namespace SpotifyAPI.Web return statusCode == HttpStatusCode.NoContent; } + public Task GetQueue() + { + return API.Get(URLs.PlayerQueue()); + } + public Task GetAvailableDevices() { return API.Get(URLs.PlayerDevices()); diff --git a/SpotifyAPI.Web/Models/Response/QueueResponse.cs b/SpotifyAPI.Web/Models/Response/QueueResponse.cs new file mode 100644 index 00000000..4d51dd02 --- /dev/null +++ b/SpotifyAPI.Web/Models/Response/QueueResponse.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace SpotifyAPI.Web +{ + public class QueueResponse + { + [JsonConverter(typeof(PlayableItemConverter))] + public IPlayableItem CurrentlyPlaying { get; set; } = default!; + [JsonProperty(ItemConverterType = typeof(PlayableItemConverter))] + public List Queue { get; set; } = default!; + } +} +