use oauth2::{ErrorResponse, RequestTokenError};
use reqwest::StatusCode;
#[derive(Debug, thiserror::Error)]
pub enum EveEsiError {
#[error("No api token")]
NoTokenFound,
#[error("Api call error {0} : {1}")]
ApiCallError(StatusCode, String),
#[error("Login error")]
LoginError,
#[error("Request Error {0}")]
ReqError(#[from] reqwest::Error),
#[error("Serde Error {0}")]
SerdeError(#[from] serde_json::Error),
#[error("Parse error {0}")]
ParseError(#[from] url::ParseError),
#[error("IO Error {0}")]
IoError(#[from] std::io::Error),
#[error("Authentication Error")]
AuthentError(),
#[error("Token error")]
TokenError(),
#[error("Scopes changed")]
ScopesChanged,
}
impl<RE: std::error::Error, TE: ErrorResponse> From<RequestTokenError<RE, TE>> for EveEsiError {
fn from(_: RequestTokenError<RE, TE>) -> Self {
EveEsiError::TokenError()
}
}