//------------------------------------------------------------------------------
//
// 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.
//
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using System;
using System.Net.Http;
using System.Net.Http.Headers;
public class PlexAPIError : Exception
{
///
/// Error Message
///
public override string Message { get; }
///
/// HTTP status code
///
public int StatusCode { get; }
///
/// HTTP headers
///
public HttpResponseHeaders Headers { get; }
///
/// HTTP content type
///
public string? ContentType { get; }
///
/// Raw response
///
public HttpResponseMessage RawResponse { get; }
///
/// HTTP response body
///
public string Body { get; }
public PlexAPIError(
string message,
HttpResponseMessage rawResponse,
string body
) : this(message, rawResponse, body, null) {}
public PlexAPIError(
string message,
HttpResponseMessage rawResponse,
string body,
Exception? innerException
) : base(message, innerException)
{
Message = message;
RawResponse = rawResponse;
StatusCode = (int)rawResponse.StatusCode;
Headers = rawResponse.Headers;
ContentType = rawResponse.Content.Headers.ContentType?.MediaType;
Body = body;
}
///
/// Detailed Error Message
///
public override string ToString()
{
var innerMessage = string.IsNullOrEmpty(InnerException?.Message) ? "" : $"\n{InnerException.Message}";
return $"Status: {StatusCode}. {Message}{innerMessage}";
}
}
}