diff options
Diffstat (limited to 'src/error.rs')
-rw-r--r-- | src/error.rs | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/src/error.rs b/src/error.rs index 75a7568..d27966a 100644 --- a/src/error.rs +++ b/src/error.rs @@ -6,7 +6,7 @@ use std::error::Error as StdError; use std::fmt; #[derive(Debug)] -pub struct StravaApiError{ +pub struct StravaApiError { status: reqwest::StatusCode, code: String, field: String, @@ -17,12 +17,23 @@ impl StravaApiError { pub fn new(status: reqwest::StatusCode, value: Value) -> StravaApiError { let first_error = &value["errors"][0]; - let code = first_error["code"].as_str().unwrap_or("unknown").to_string(); - let field = first_error["field"].as_str().unwrap_or("unknown").to_string(); + let code = first_error["code"] + .as_str() + .unwrap_or("unknown") + .to_string(); + let field = first_error["field"] + .as_str() + .unwrap_or("unknown") + .to_string(); - StravaApiError { status, code, field, value } + StravaApiError { + status, + code, + field, + value, + } } - } +} impl fmt::Display for StravaApiError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { @@ -37,9 +48,9 @@ mod tests { fn strava_api_error_unknown() { let data = r#""insane input""#; let json = serde_json::from_str(data).unwrap(); - let error = Error::StravaApiError(StravaApiError::new(reqwest::StatusCode::UNAUTHORIZED, json)); - assert_eq!("field 'unknown' has error 'unknown'", - format!("{}", error)); + let error = + Error::StravaApiError(StravaApiError::new(reqwest::StatusCode::UNAUTHORIZED, json)); + assert_eq!("field 'unknown' has error 'unknown'", format!("{}", error)); } #[test] @@ -54,9 +65,12 @@ mod tests { "message":"Authorization Error" }"#; let json = serde_json::from_str(data).unwrap(); - let error = Error::StravaApiError(StravaApiError::new(reqwest::StatusCode::UNAUTHORIZED, json)); - assert_eq!("field 'access_token' has error 'invalid'", - format!("{}", error)); + let error = + Error::StravaApiError(StravaApiError::new(reqwest::StatusCode::UNAUTHORIZED, json)); + assert_eq!( + "field 'access_token' has error 'invalid'", + format!("{}", error) + ); } } @@ -111,7 +125,7 @@ impl From<DieselErr> for Error { fn from(e: DieselErr) -> Error { match e { DieselErr::NotFound => Error::NotFound, - e => Error::DieselError(e) + e => Error::DieselError(e), } } } |