mirror of
https://github.com/LukeHagar/plexcsharp.git
synced 2025-12-07 04:20:48 +00:00
ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.391.3
This commit is contained in:
81
LukeHagar/PlexAPI/SDK/Utils/SpeakeasyHttpClient.cs
Normal file
81
LukeHagar/PlexAPI/SDK/Utils/SpeakeasyHttpClient.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Utils
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
public interface ISpeakeasyHttpClient
|
||||
{
|
||||
/// <summary>
|
||||
/// Sends an HTTP request asynchronously.
|
||||
/// </summary>
|
||||
/// <param name="request">The HTTP request message to send.</param>
|
||||
/// <returns>The value of the TResult parameter contains the HTTP response message.</returns>
|
||||
Task<HttpResponseMessage> SendAsync(HttpRequestMessage request);
|
||||
|
||||
/// <summary>
|
||||
/// Clones an HTTP request asynchronously.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This method is used in the context of Retries. It creates a new HttpRequestMessage instance
|
||||
/// as a deep copy of the original request, including its method, URI, content, headers and options.
|
||||
/// </remarks>
|
||||
/// <param name="request">The HTTP request message to clone.</param>
|
||||
/// <returns>The value of the TResult parameter contains the cloned HTTP request message.</returns>
|
||||
Task<HttpRequestMessage> CloneAsync(HttpRequestMessage request);
|
||||
}
|
||||
|
||||
public class SpeakeasyHttpClient : ISpeakeasyHttpClient
|
||||
{
|
||||
protected readonly HttpClient httpClient;
|
||||
|
||||
public SpeakeasyHttpClient()
|
||||
{
|
||||
httpClient = new System.Net.Http.HttpClient();
|
||||
}
|
||||
|
||||
public virtual async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request)
|
||||
{
|
||||
return await httpClient.SendAsync(request);
|
||||
}
|
||||
|
||||
public virtual async Task<HttpRequestMessage> CloneAsync(HttpRequestMessage request)
|
||||
{
|
||||
HttpRequestMessage clone = new HttpRequestMessage(request.Method, request.RequestUri);
|
||||
|
||||
if (request.Content != null)
|
||||
{
|
||||
clone.Content = new ByteArrayContent(await request.Content.ReadAsByteArrayAsync());
|
||||
if (request.Content.Headers != null)
|
||||
{
|
||||
foreach (var h in request.Content.Headers)
|
||||
{
|
||||
clone.Content.Headers.Add(h.Key, h.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (KeyValuePair<string, IEnumerable<string>> header in request.Headers)
|
||||
{
|
||||
clone.Headers.TryAddWithoutValidation(header.Key, header.Value);
|
||||
}
|
||||
|
||||
foreach (KeyValuePair<string, object?> prop in request.Options)
|
||||
{
|
||||
clone.Options.TryAdd(prop.Key, prop.Value);
|
||||
}
|
||||
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user