use reqwest::StatusCode;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum DtReqwestError {
#[error("authentication is required first")]
AuthenticationRequired,
#[error("request parameters or input is nonsensical")]
BadRequest,
#[error(transparent)]
ReqwestError(#[from] reqwest::Error),
}
impl DtReqwestError {
pub fn reqwest_error(self) -> Option<reqwest::Error> {
match self {
DtReqwestError::AuthenticationRequired => None,
DtReqwestError::BadRequest => None,
DtReqwestError::ReqwestError(e) => Some(e),
}
}
pub fn status_code(self) -> StatusCode {
match self {
DtReqwestError::AuthenticationRequired => StatusCode::UNAUTHORIZED,
DtReqwestError::BadRequest => StatusCode::BAD_REQUEST,
DtReqwestError::ReqwestError(e) => e.status().unwrap(),
}
}
}