2020-05-03 21:34:03 +01:00
|
|
|
using System;
|
2020-05-03 00:00:35 +01:00
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
namespace SpotifyAPI.Web
|
|
|
|
{
|
|
|
|
public class PlaylistGetItemsRequest : RequestParams
|
|
|
|
{
|
2020-05-30 23:11:05 +01:00
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="types">
|
|
|
|
/// A comma-separated list of item types that your client supports
|
|
|
|
/// besides the default track type. Valid types are: track and episode.
|
|
|
|
/// Note: This parameter was introduced to allow existing clients to maintain
|
|
|
|
/// their current behaviour and might be deprecated in the future. In addition to
|
|
|
|
/// providing this parameter, make sure that your client properly handles cases of new types in the
|
|
|
|
/// future by checking against the type field of each object. Defaults to ALL
|
|
|
|
/// </param>
|
2020-05-05 14:30:00 +01:00
|
|
|
public PlaylistGetItemsRequest(AdditionalTypes types = AdditionalTypes.All)
|
2020-05-03 08:06:28 +01:00
|
|
|
{
|
2020-05-05 14:30:00 +01:00
|
|
|
Ensure.ArgumentNotNull(types, nameof(types));
|
|
|
|
|
|
|
|
AdditionalTypesParam = types;
|
|
|
|
Fields = new List<string>();
|
2020-05-03 08:06:28 +01:00
|
|
|
}
|
|
|
|
|
2020-05-30 23:11:05 +01:00
|
|
|
/// <summary>
|
|
|
|
/// Filters for the query: a comma-separated list of the fields to return.
|
|
|
|
/// If omitted, all fields are returned. For example, to get just the total number of items and the request limit:
|
|
|
|
/// fields=total,limit
|
|
|
|
/// A dot separator can be used to specify non-reoccurring fields, while parentheses can be used to specify
|
|
|
|
/// reoccurring fields within objects. For example, to get just the added date and user ID of the adder:
|
|
|
|
/// fields=items(added_at,added_by.id)
|
|
|
|
/// Use multiple parentheses to drill down into nested objects, for example:
|
|
|
|
/// fields=items(track(name,href,album(name,href)))
|
|
|
|
/// Fields can be excluded by prefixing them with an exclamation mark, for example:
|
|
|
|
/// fields=items.track.album(!external_urls,images)
|
|
|
|
/// </summary>
|
|
|
|
/// <value></value>
|
2020-05-03 00:00:35 +01:00
|
|
|
[QueryParam("fields")]
|
2020-05-05 14:30:00 +01:00
|
|
|
public IList<string> Fields { get; }
|
2020-05-03 00:00:35 +01:00
|
|
|
|
2020-05-30 23:11:05 +01:00
|
|
|
/// <summary>
|
|
|
|
/// The maximum number of items to return. Default: 100. Minimum: 1. Maximum: 100.
|
|
|
|
/// </summary>
|
|
|
|
/// <value></value>
|
2020-05-03 00:00:35 +01:00
|
|
|
[QueryParam("limit")]
|
|
|
|
public int? Limit { get; set; }
|
|
|
|
|
2020-05-30 23:11:05 +01:00
|
|
|
/// <summary>
|
|
|
|
/// The index of the first item to return. Default: 0 (the first object).
|
|
|
|
/// </summary>
|
|
|
|
/// <value></value>
|
2020-05-03 00:00:35 +01:00
|
|
|
[QueryParam("offset")]
|
|
|
|
public int? Offset { get; set; }
|
|
|
|
|
2020-05-30 23:11:05 +01:00
|
|
|
/// <summary>
|
|
|
|
/// An ISO 3166-1 alpha-2 country code or the string from_token.
|
|
|
|
/// Provide this parameter if you want to apply Track Relinking. For episodes, if a valid user access token is
|
|
|
|
/// specified in the request header, the country associated with the user account will take priority over this
|
|
|
|
/// parameter. Note: If neither market or user country are provided,
|
|
|
|
/// the episode is considered unavailable for the client.
|
|
|
|
/// </summary>
|
|
|
|
/// <value></value>
|
2020-05-03 00:00:35 +01:00
|
|
|
[QueryParam("market")]
|
2020-05-25 17:00:38 +01:00
|
|
|
public string? Market { get; set; }
|
2020-05-03 00:00:35 +01:00
|
|
|
|
2020-05-03 08:06:28 +01:00
|
|
|
/// <summary>
|
|
|
|
/// This is set to `"track", "episode"` by default.
|
|
|
|
/// </summary>
|
|
|
|
/// <value></value>
|
2020-05-03 00:00:35 +01:00
|
|
|
[QueryParam("additional_types")]
|
2020-05-07 17:03:20 +01:00
|
|
|
public AdditionalTypes AdditionalTypesParam { get; }
|
2020-05-03 21:34:03 +01:00
|
|
|
|
|
|
|
[Flags]
|
2020-05-05 14:30:00 +01:00
|
|
|
public enum AdditionalTypes
|
2020-05-03 21:34:03 +01:00
|
|
|
{
|
|
|
|
[String("track")]
|
2020-05-05 14:30:00 +01:00
|
|
|
Track = 1,
|
2020-05-03 21:34:03 +01:00
|
|
|
[String("episode")]
|
2020-05-05 14:30:00 +01:00
|
|
|
Episode = 2,
|
2020-05-03 21:34:03 +01:00
|
|
|
All = Track | Episode
|
|
|
|
}
|
2020-05-03 00:00:35 +01:00
|
|
|
}
|
|
|
|
}
|
2020-05-25 17:00:38 +01:00
|
|
|
|