2020-05-03 21:34:03 +01:00
|
|
|
|
using System;
|
2020-05-03 08:06:28 +01:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
namespace SpotifyAPI.Web
|
|
|
|
|
{
|
|
|
|
|
public class PlaylistGetRequest : RequestParams
|
|
|
|
|
{
|
2020-05-05 14:30:00 +01:00
|
|
|
|
public PlaylistGetRequest(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;
|
2020-06-29 21:58:50 +01:00
|
|
|
|
Fields = new List<string>();
|
2020-05-03 08:06:28 +01:00
|
|
|
|
}
|
|
|
|
|
|
2020-06-29 21:58:50 +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 playlist’s description and URI: fields=description,uri.
|
|
|
|
|
/// 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=tracks.items(added_at,added_by.id). Use multiple parentheses to drill down into nested objects, for example:
|
|
|
|
|
/// fields=tracks.items(track(name,href,album(name,href))).
|
|
|
|
|
/// Fields can be excluded by prefixing them with an exclamation mark, for example:
|
|
|
|
|
/// fields=tracks.items(track(name,href,album(!name,href)))
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value></value>
|
|
|
|
|
[QueryParam("fields")]
|
|
|
|
|
public IList<string> Fields { get; }
|
|
|
|
|
|
|
|
|
|
/// <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>
|
|
|
|
|
[QueryParam("market")]
|
|
|
|
|
public string? Market { get; }
|
|
|
|
|
|
2020-05-03 08:06:28 +01:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// This is set to `"track", "episode"` by default.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value></value>
|
|
|
|
|
[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 08:06:28 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
2020-05-25 17:00:38 +01:00
|
|
|
|
|