Skip to content

Commit f3d90dd

Browse files
committed
Made HTTP errors in get requests return Err
As opposed to being Ok and then choking on parsing the returned JSON.
1 parent 3c8bc38 commit f3d90dd

File tree

5 files changed

+11
-16
lines changed

5 files changed

+11
-16
lines changed

src/ipns.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ impl IpfsApi {
2323
/// ```
2424
pub fn name_resolve(&self, name: &str) -> Result<String> {
2525
let url = format!("http://{}:{}/api/v0/name/resolve?arg={}", self.server, self.port, name);
26-
let resp = reqwest::get(&url)?;
26+
let resp = reqwest::get(&url)?.error_for_status()?;
2727
let resp: Value = serde_json::from_reader(resp)?;
2828

2929
if resp["Path"].is_string() {
@@ -36,7 +36,7 @@ impl IpfsApi {
3636
/// Publish an IPFS hash in IPNS.
3737
pub fn name_publish(&self, hash: &str) -> Result<()> {
3838
let url = format!("http://{}:{}/api/v0/name/publish?arg={}", self.server, self.port, hash);
39-
let _resp = reqwest::get(&url)?;
39+
let _resp = reqwest::get(&url)?.error_for_status()?;
4040
Ok(())
4141
}
4242
}

src/object.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ impl IpfsApi {
2626
/// of a hash.
2727
pub fn object_stats(&self, hash: &str) -> Result<ObjectStats> {
2828
let url = format!("http://{}:{}/api/v0/object/stat?arg={}", self.server, self.port, hash);
29-
let resp = reqwest::get(&url)?;
29+
let resp = reqwest::get(&url)?.error_for_status()?;
3030
Ok(serde_json::from_reader(resp)?)
3131
}
3232
}

src/pin.rs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl IpfsApi {
5151
.append_pair("arg", hash)
5252
.append_pair("recursive", &recursive.to_string())
5353
.append_pair("progress", &progress.to_string());
54-
let resp = reqwest::get(url)?;
54+
let resp = reqwest::get(url)?.error_for_status()?;
5555
Ok(serde_json::from_reader(resp)?)
5656
}
5757

@@ -62,7 +62,7 @@ impl IpfsApi {
6262
url.query_pairs_mut()
6363
.append_pair("arg", hash)
6464
.append_pair("recursive", &recursive.to_string());
65-
let resp = reqwest::get(url)?;
65+
let resp = reqwest::get(url)?.error_for_status()?;
6666
Ok(serde_json::from_reader(resp)?)
6767
}
6868

@@ -71,10 +71,7 @@ impl IpfsApi {
7171
pub fn pin_ls(&self) -> Result<PinList> {
7272
let mut url = self.get_url()?;
7373
url.set_path("api/v0/pin/ls");
74-
// url.query_pairs_mut()
75-
// .append_pair("arg", hash);
76-
// .append_pair("recursive", &recursive.to_string());
77-
let resp = reqwest::get(url)?;
74+
let resp = reqwest::get(url)?.error_for_status()?;
7875
Ok(serde_json::from_reader(resp)?)
7976
}
8077
}
@@ -105,16 +102,14 @@ mod tests {
105102

106103
// Add pin
107104
let api = IpfsApi::new("127.0.0.1", 5001);
108-
let resp = api.pin_add(obj, true, true);
109-
// println!("Add response: {:#?}", resp);
105+
let resp = api.pin_add(obj, true, false);
106+
println!("Add response: {:#?}", resp);
110107
let desired = PinAddResponse {
111108
pins: vec![obj.into()],
112109
progress: None,
113110
};
114111
assert_eq!(resp.unwrap(), desired);
115112

116-
117-
118113
// List pin to make sure it's present.
119114
let api = IpfsApi::new("127.0.0.1", 5001);
120115
let resp = api.pin_ls();

src/pubsub.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ impl IpfsApi {
5656
/// ```
5757
pub fn pubsub_subscribe(&self, channel: &str) -> Result<impl Iterator<Item=PubSubMessage>> {
5858
let url = format!("http://{}:{}/api/v0/pubsub/sub?arg={}&discover=true", self.server, self.port, channel);
59-
let resp = reqwest::get(&url)?;
59+
let resp = reqwest::get(&url)?.error_for_status()?;
6060

6161
let messages = BufReader::new(resp).lines()
6262
.filter(|x|x.is_ok())
@@ -80,7 +80,7 @@ impl IpfsApi {
8080
/// for peer-to-peer communication and dynamic apps over IPFS.
8181
pub fn pubsub_publish(&self, channel: &str, data: &str) -> Result<()> {
8282
let url = format!("http://{}:{}/api/v0/pubsub/pub?arg={}&arg={}", self.server, self.port, channel, data);
83-
let _resp = reqwest::get(&url)?;
83+
let _resp = reqwest::get(&url)?.error_for_status()?;
8484
Ok(())
8585
}
8686
}

src/version.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ impl IpfsApi {
2424
/// Get the version from the IPFS daemon.
2525
pub fn version(&self) -> Result<IpfsVersion> {
2626
let url = format!("http://{}:{}/api/v0/version", self.server, self.port);
27-
let resp = reqwest::get(&url)?;
27+
let resp = reqwest::get(&url)?.error_for_status()?;
2828
Ok(serde_json::from_reader(resp)?)
2929
}
3030
}

0 commit comments

Comments
 (0)