use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ErrorCode {
#[serde(rename = "unknown_error")]
UnknownError,
#[serde(rename = "invalid_request_uri")]
InvalidRequestUri,
#[serde(rename = "invalid_request_object")]
InvalidRequestObject,
#[serde(rename = "consent_required")]
ConsentRequired,
#[serde(rename = "interaction_required")]
InteractionRequired,
#[serde(rename = "login_required")]
LoginRequired,
#[serde(rename = "request_unauthorized")]
RequestUnauthorized,
#[serde(rename = "request_forbidden")]
RequestForbidden,
#[serde(rename = "invalid_request")]
InvalidRequest,
#[serde(rename = "unauthorized_client")]
UnauthorizedClient,
#[serde(rename = "access_denied")]
AccessDenied,
#[serde(rename = "unsupported_response_type")]
UnsupportedResponseType,
#[serde(rename = "unsupported_response_mode")]
UnsupportedResponseMode,
#[serde(rename = "invalid_scope")]
InvalidScope,
#[serde(rename = "server_error")]
ServerError,
#[serde(rename = "temporarily_unavailable")]
TemporarilyUnavailable,
#[serde(rename = "unsupported_grant_type")]
UnsupportedGrantType,
#[serde(rename = "invalid_grant")]
InvalidGrant,
#[serde(rename = "invalid_client")]
InvalidClient,
#[serde(rename = "not_found")]
NotFound,
#[serde(rename = "invalid_state")]
InvalidState,
#[serde(rename = "misconfiguration")]
Misconfiguration,
#[serde(rename = "insufficient_entropy")]
InsufficientEntropy,
#[serde(rename = "invalid_token")]
InvalidToken,
#[serde(rename = "token_signature_mismatch")]
TokenSignatureMismatch,
#[serde(rename = "scope_not_granted")]
ScopeNotGranted,
#[serde(rename = "token_claim")]
TokenClaim,
#[serde(rename = "token_inactive")]
TokenInactive,
#[serde(rename = "request_not_supported")]
RequestNotSupported,
#[serde(rename = "request_uri_not_supported")]
RequestUriNotSupported,
#[serde(rename = "jti_known")]
JtiKnown,
#[serde(rename = "quota_exceeded")]
QuotaExceeded,
}
impl std::fmt::Display for ErrorCode {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::UnknownError => write!(f, "unknown_error"),
Self::InvalidRequestUri => write!(f, "invalid_request_uri"),
Self::InvalidRequestObject => write!(f, "invalid_request_object"),
Self::ConsentRequired => write!(f, "consent_required"),
Self::InteractionRequired => write!(f, "interaction_required"),
Self::LoginRequired => write!(f, "login_required"),
Self::RequestUnauthorized => write!(f, "request_unauthorized"),
Self::RequestForbidden => write!(f, "request_forbidden"),
Self::InvalidRequest => write!(f, "invalid_request"),
Self::UnauthorizedClient => write!(f, "unauthorized_client"),
Self::AccessDenied => write!(f, "access_denied"),
Self::UnsupportedResponseType => write!(f, "unsupported_response_type"),
Self::UnsupportedResponseMode => write!(f, "unsupported_response_mode"),
Self::InvalidScope => write!(f, "invalid_scope"),
Self::ServerError => write!(f, "server_error"),
Self::TemporarilyUnavailable => write!(f, "temporarily_unavailable"),
Self::UnsupportedGrantType => write!(f, "unsupported_grant_type"),
Self::InvalidGrant => write!(f, "invalid_grant"),
Self::InvalidClient => write!(f, "invalid_client"),
Self::NotFound => write!(f, "not_found"),
Self::InvalidState => write!(f, "invalid_state"),
Self::Misconfiguration => write!(f, "misconfiguration"),
Self::InsufficientEntropy => write!(f, "insufficient_entropy"),
Self::InvalidToken => write!(f, "invalid_token"),
Self::TokenSignatureMismatch => write!(f, "token_signature_mismatch"),
Self::ScopeNotGranted => write!(f, "scope_not_granted"),
Self::TokenClaim => write!(f, "token_claim"),
Self::TokenInactive => write!(f, "token_inactive"),
Self::RequestNotSupported => write!(f, "request_not_supported"),
Self::RequestUriNotSupported => write!(f, "request_uri_not_supported"),
Self::JtiKnown => write!(f, "jti_known"),
Self::QuotaExceeded => write!(f, "quota_exceeded"),
}
}
}
impl Default for ErrorCode {
fn default() -> ErrorCode {
Self::UnknownError
}
}