using System.Net; using System.Net.Http.Headers; using System.Net.Http.Json; using System.Text.Encodings.Web; using System.Text.Json; using System.Text.Json.Serialization; using YandexMusic.API.Models.Queue; namespace YandexMusic.API.Requests.Queue; public class YQueueCreateBuilder : YMusicRequestBuilder { private string? _device; public YQueueCreateBuilder(YandexMusicApi api, string? device = null) : base(api) => _device = device; protected override string Method => WebRequestMethods.Http.Post; protected override string PathTemplate => "queues"; protected override HttpContent? GetContent(YQueue queue) { var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, Converters = { new JsonStringEnumConverter() } }; return JsonContent.Create(queue, new MediaTypeHeaderValue("application/json"), options); } protected override void SetCustomHeaders(HttpRequestHeaders headers) { if (!string.IsNullOrEmpty(_device)) headers.Add("X-Yandex-Music-Device", _device); } }