diff --git a/SpotifyAPI.Web/Clients/Interfaces/IPlayerClient.cs b/SpotifyAPI.Web/Clients/Interfaces/IPlayerClient.cs index 38ed50c5..615a4876 100644 --- a/SpotifyAPI.Web/Clients/Interfaces/IPlayerClient.cs +++ b/SpotifyAPI.Web/Clients/Interfaces/IPlayerClient.cs @@ -73,26 +73,129 @@ namespace SpotifyAPI.Web /// Task GetCurrentPlayback(PlayerCurrentPlaybackRequest request); + /// + /// Seeks to the given position in the user’s currently playing track. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-seek-to-position-in-currently-playing-track + /// + /// Task SeekTo(PlayerSeekToRequest request); + /// + /// Skips to previous track in the user’s queue. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-skip-users-playback-to-previous-track + /// + /// Task SkipPrevious(); + + /// + /// Skips to previous track in the user’s queue. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-skip-users-playback-to-previous-track + /// + /// Task SkipPrevious(PlayerSkipPreviousRequest request); + /// + /// Start a new context or resume current playback on the user’s active device. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-start-a-users-playback + /// + /// Task ResumePlayback(); + + /// + /// Start a new context or resume current playback on the user’s active device. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-start-a-users-playback + /// + /// Task ResumePlayback(PlayerResumePlaybackRequest request); + /// + /// Pause playback on the user’s account. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-pause-a-users-playback + /// + /// Task PausePlayback(); + + /// + /// Pause playback on the user’s account. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-pause-a-users-playback + /// + /// Task PausePlayback(PlayerPausePlaybackRequest request); + /// + /// Set the volume for the user’s current playback device. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-set-volume-for-users-playback + /// + /// Task SetVolume(PlayerVolumeRequest request); + /// + /// Get tracks from the current user’s recently played tracks. Note: Currently doesn’t support podcast episodes. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-recently-played + /// + /// Task> GetRecentlyPlayed(); + + /// + /// Get tracks from the current user’s recently played tracks. Note: Currently doesn’t support podcast episodes. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-recently-played + /// + /// Task> GetRecentlyPlayed(PlayerRecentlyPlayedRequest request); + /// + /// Get information about a user’s available devices. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-a-users-available-devices + /// + /// Task GetAvailableDevices(); + /// + /// Toggle shuffle on or off for user’s playback. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-toggle-shuffle-for-users-playback + /// + /// Task SetShuffle(PlayerShuffleRequest request); + /// + /// Add an item to the end of the user’s current playback queue. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-add-to-queue + /// + /// Task AddToQueue(PlayerAddToQueueRequest request); } } diff --git a/SpotifyAPI.Web/Models/Request/PlayerAddToQueueRequest.cs b/SpotifyAPI.Web/Models/Request/PlayerAddToQueueRequest.cs index fecc8aac..c75d0742 100644 --- a/SpotifyAPI.Web/Models/Request/PlayerAddToQueueRequest.cs +++ b/SpotifyAPI.Web/Models/Request/PlayerAddToQueueRequest.cs @@ -2,6 +2,10 @@ namespace SpotifyAPI.Web { public class PlayerAddToQueueRequest : RequestParams { + /// + /// + /// + /// The uri of the item to add to the queue. Must be a track or an episode uri. public PlayerAddToQueueRequest(string uri) { Ensure.ArgumentNotNullOrEmptyString(uri, nameof(uri)); @@ -9,9 +13,18 @@ namespace SpotifyAPI.Web Uri = uri; } + /// + /// The uri of the item to add to the queue. Must be a track or an episode uri. + /// + /// [QueryParam("uri")] public string Uri { get; } + /// + /// The id of the device this command is targeting. + /// If not supplied, the user’s currently active device is the target. + /// + /// [QueryParam("device_id")] public string? DeviceId { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/PlayerPausePlaybackRequest.cs b/SpotifyAPI.Web/Models/Request/PlayerPausePlaybackRequest.cs index 6ebe42e0..1af4e446 100644 --- a/SpotifyAPI.Web/Models/Request/PlayerPausePlaybackRequest.cs +++ b/SpotifyAPI.Web/Models/Request/PlayerPausePlaybackRequest.cs @@ -2,6 +2,10 @@ namespace SpotifyAPI.Web { public class PlayerPausePlaybackRequest : RequestParams { + /// + /// The id of the device this command is targeting. If not supplied, the user’s currently active device is the target. + /// + /// [QueryParam("device_id")] public string? DeviceId { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/PlayerRecentlyPlayedRequest.cs b/SpotifyAPI.Web/Models/Request/PlayerRecentlyPlayedRequest.cs index 32427da1..8fc55860 100644 --- a/SpotifyAPI.Web/Models/Request/PlayerRecentlyPlayedRequest.cs +++ b/SpotifyAPI.Web/Models/Request/PlayerRecentlyPlayedRequest.cs @@ -2,12 +2,26 @@ namespace SpotifyAPI.Web { public class PlayerRecentlyPlayedRequest : RequestParams { + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// A Unix timestamp in milliseconds. Returns all items after (but not including) this cursor position. + /// If after is specified, before must not be specified. + /// + /// [QueryParam("after")] public long? After { get; set; } + /// + /// A Unix timestamp in milliseconds. Returns all items before (but not including) this cursor position. + /// If before is specified, after must not be specified. + /// + /// [QueryParam("before")] public long? Before { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/PlayerResumePlaybackRequest.cs b/SpotifyAPI.Web/Models/Request/PlayerResumePlaybackRequest.cs index eda8fa30..ea617ad9 100644 --- a/SpotifyAPI.Web/Models/Request/PlayerResumePlaybackRequest.cs +++ b/SpotifyAPI.Web/Models/Request/PlayerResumePlaybackRequest.cs @@ -5,27 +5,55 @@ namespace SpotifyAPI.Web { public class PlayerResumePlaybackRequest : RequestParams { + /// + /// The id of the device this command is targeting. If not supplied, the user’s currently active device is the target. + /// + /// [QueryParam("device_id")] public string? DeviceId { get; set; } + /// + /// Undocumented by Spotify Beta Docs + /// + /// [BodyParam("context_uri")] public string? ContextUri { get; set; } + /// + /// Undocumented by Spotify Beta Docs + /// + /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227")] [BodyParam("uris")] public IList? Uris { get; set; } + /// + /// Undocumented by Spotify Beta Docs + /// + /// [BodyParam("offset")] public Offset? OffsetParam { get; set; } + /// + /// Undocumented by Spotify Beta Docs + /// + /// [BodyParam("position_ms")] public int? PositionMs { get; set; } public class Offset { + /// + /// Undocumented by Spotify Beta Docs + /// + /// [JsonProperty("uri", NullValueHandling = NullValueHandling.Ignore)] public string? Uri { get; set; } + /// + /// Undocumented by Spotify Beta Docs + /// + /// [JsonProperty("position", NullValueHandling = NullValueHandling.Ignore)] public int? Position { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/PlayerSeekToRequest.cs b/SpotifyAPI.Web/Models/Request/PlayerSeekToRequest.cs index e1fa0837..1951c12a 100644 --- a/SpotifyAPI.Web/Models/Request/PlayerSeekToRequest.cs +++ b/SpotifyAPI.Web/Models/Request/PlayerSeekToRequest.cs @@ -2,14 +2,32 @@ namespace SpotifyAPI.Web { public class PlayerSeekToRequest : RequestParams { + /// + /// + /// + /// + /// The position in milliseconds to seek to. Must be a positive number. + /// Passing in a position that is greater than the length of the track will + /// cause the player to start playing the next song. + /// public PlayerSeekToRequest(long positionMs) { PositonMs = positionMs; } + /// + /// The position in milliseconds to seek to. Must be a positive number. + /// Passing in a position that is greater than the length of the track will cause + /// the player to start playing the next song. + /// + /// [QueryParam("position_ms")] public long PositonMs { get; } + /// + /// The id of the device this command is targeting. If not supplied, the user’s currently active device is the target. + /// + /// [QueryParam("device_id")] public string? DeviceId { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/PlayerShuffleRequest.cs b/SpotifyAPI.Web/Models/Request/PlayerShuffleRequest.cs index 81afe246..4c333f8a 100644 --- a/SpotifyAPI.Web/Models/Request/PlayerShuffleRequest.cs +++ b/SpotifyAPI.Web/Models/Request/PlayerShuffleRequest.cs @@ -2,14 +2,27 @@ namespace SpotifyAPI.Web { public class PlayerShuffleRequest : RequestParams { + /// + /// + /// + /// true : Shuffle user’s playback false : Do not shuffle user’s playback. public PlayerShuffleRequest(bool state) { State = state; } + /// + /// true : Shuffle user’s playback false : Do not shuffle user’s playback. + /// + /// [QueryParam("state")] public bool State { get; } + /// + /// The id of the device this command is targeting. If not supplied, + /// the user’s currently active device is the target. + /// + /// [QueryParam("device_id")] public string? DeviceId { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/PlayerSkipPreviousRequest.cs b/SpotifyAPI.Web/Models/Request/PlayerSkipPreviousRequest.cs index 865a7437..6e6cacbb 100644 --- a/SpotifyAPI.Web/Models/Request/PlayerSkipPreviousRequest.cs +++ b/SpotifyAPI.Web/Models/Request/PlayerSkipPreviousRequest.cs @@ -2,6 +2,11 @@ namespace SpotifyAPI.Web { public class PlayerSkipPreviousRequest : RequestParams { + /// + /// The id of the device this command is targeting. + /// If not supplied, the user’s currently active device is the target. + /// + /// [QueryParam("device_id")] public string? DeviceId { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/PlayerVolumeRequest.cs b/SpotifyAPI.Web/Models/Request/PlayerVolumeRequest.cs index 3f5b18e7..bbd5a1c9 100644 --- a/SpotifyAPI.Web/Models/Request/PlayerVolumeRequest.cs +++ b/SpotifyAPI.Web/Models/Request/PlayerVolumeRequest.cs @@ -2,14 +2,26 @@ namespace SpotifyAPI.Web { public class PlayerVolumeRequest : RequestParams { + /// + /// + /// + /// The volume to set. Must be a value from 0 to 100 inclusive. public PlayerVolumeRequest(int volumePercent) { VolumePercent = volumePercent; } + /// + /// The volume to set. Must be a value from 0 to 100 inclusive. + /// + /// [QueryParam("volume_percent")] public int VolumePercent { get; } + /// + /// The id of the device this command is targeting. If not supplied, the user’s currently active device is the target. + /// + /// [QueryParam("device_id")] public string? DeviceId { get; set; } }