//------------------------------------------------------------------------------ // // This code was generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. // // Changes to this file may cause incorrect behavior and will be lost when // the code is regenerated. // //------------------------------------------------------------------------------ #nullable enable namespace PlexAPI.Utils { using System; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; public interface ISpeakeasyHttpClient { void AddHeader(string key, string value); void AddQueryParam(string key, string value); Task SendAsync(HttpRequestMessage message); } public class SpeakeasyHttpClient : ISpeakeasyHttpClient { private ISpeakeasyHttpClient? client; private Dictionary> headers { get; } = new Dictionary>(); private Dictionary> queryParams { get; } = new Dictionary>(); internal SpeakeasyHttpClient(ISpeakeasyHttpClient? client = null) { this.client = client; } public void AddHeader(string key, string value) { if (headers.ContainsKey(key)) { headers[key].Add(value); } else { headers.Add(key, new List { value }); } } public void AddQueryParam(string key, string value) { if (queryParams.ContainsKey(key)) { queryParams[key].Add(value); } else { queryParams.Add(key, new List { value }); } } public async Task SendAsync(HttpRequestMessage message) { foreach(var hh in headers) { foreach(var hv in hh.Value) { message.Headers.Add(hh.Key, hv); } } /*var qp = URLBuilder.SerializeQueryParams(queryParams); if (qp != "") { if (message.uri.Query == "") { message.url += "?" + qp; } else { message.url += "&" + qp; } }*/ if (client != null) { return await client.SendAsync(message); } return await new HttpClient().SendAsync(message); } } }