summaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs38
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),
}
}
}