fix(client): handle new gated and quarantined error types (#187)
* fix(client): handle new gated and quarantined error types * test(client): add test for gated and quarantined
This commit is contained in:
parent
374238abc3
commit
27b56c1781
@ -382,6 +382,14 @@ pub async fn json(path: String, quarantine: bool) -> Result<Value, String> {
|
|||||||
let () = force_refresh_token().await;
|
let () = force_refresh_token().await;
|
||||||
return Err("OAuth token has expired. Please refresh the page!".to_string());
|
return Err("OAuth token has expired. Please refresh the page!".to_string());
|
||||||
}
|
}
|
||||||
|
// Handle quarantined
|
||||||
|
if json["reason"] == "quarantined" {
|
||||||
|
return Err("quarantined".into());
|
||||||
|
}
|
||||||
|
// Handle gated
|
||||||
|
if json["reason"] == "gated" {
|
||||||
|
return Err("gated".into());
|
||||||
|
}
|
||||||
Err(format!("Reddit error {} \"{}\": {} | {path}", json["error"], json["reason"], json["message"]))
|
Err(format!("Reddit error {} \"{}\": {} | {path}", json["error"], json["reason"], json["message"]))
|
||||||
} else {
|
} else {
|
||||||
Ok(json)
|
Ok(json)
|
||||||
|
@ -515,3 +515,11 @@ async fn test_fetching_subreddit() {
|
|||||||
let subreddit = subreddit("rust", false).await;
|
let subreddit = subreddit("rust", false).await;
|
||||||
assert!(subreddit.is_ok());
|
assert!(subreddit.is_ok());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn test_gated_and_quarantined() {
|
||||||
|
let quarantined = subreddit("edgy", true).await;
|
||||||
|
assert!(quarantined.is_ok());
|
||||||
|
let gated = subreddit("drugs", true).await;
|
||||||
|
assert!(gated.is_ok());
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user