Foxchat.NET/Foxchat.Core/Models/Http/ApiError.cs
2024-05-20 19:42:04 +02:00

28 lines
759 B
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace Foxchat.Core.Models.Http;
public record ApiError
{
public required int Status { get; init; }
[JsonConverter(typeof(StringEnumConverter))]
public required ErrorCode Code { get; init; }
public required string Message { get; init; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public ApiError? OriginalError { get; init; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string[]? Scopes { get; init; }
}
public enum ErrorCode
{
InternalServerError,
Unauthorized,
Forbidden,
BadRequest,
OutgoingFederationError,
AuthenticationError,
// TODO: more specific API error codes
GenericApiError,
}