//------------------------------------------------------------------------------ // // 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}"; } } }