summaryrefslogtreecommitdiffstats
path: root/ipfs-api-backend-hyper
diff options
context:
space:
mode:
authorFerris Tseng <ferristseng@fastmail.fm>2021-02-22 22:56:04 -0500
committerFerris Tseng <ferristseng@fastmail.fm>2021-02-22 22:56:04 -0500
commit4ede307efb87bad2627190665279123e588a3494 (patch)
tree22795c2bc10d96e34a126863ef01e6b86ea9a5a3 /ipfs-api-backend-hyper
parent89519b4c5ce4839a362ab9ec9c6359f3c6aa844b (diff)
centralize errors in prelude as much as possible
Diffstat (limited to 'ipfs-api-backend-hyper')
-rw-r--r--ipfs-api-backend-hyper/Cargo.toml4
-rw-r--r--ipfs-api-backend-hyper/src/backend.rs24
-rw-r--r--ipfs-api-backend-hyper/src/error.rs13
3 files changed, 13 insertions, 28 deletions
diff --git a/ipfs-api-backend-hyper/Cargo.toml b/ipfs-api-backend-hyper/Cargo.toml
index 9ebd7d0..03ee234 100644
--- a/ipfs-api-backend-hyper/Cargo.toml
+++ b/ipfs-api-backend-hyper/Cargo.toml
@@ -20,7 +20,5 @@ hyper = { version = "0.14", features = ["http1", "http2", "c
hyper-multipart-rfc7578 = "0.5"
hyper-tls = "0.5"
ipfs-api-prelude = { version = "0.1.0", path = "../ipfs-api-prelude" }
-serde = { version = "1.0", features = ["derive"] }
-serde_json = "1.0"
-serde_urlencoded = "0.7"
+serde = "1.0"
thiserror = "1.0"
diff --git a/ipfs-api-backend-hyper/src/backend.rs b/ipfs-api-backend-hyper/src/backend.rs
index 047fbb6..bbe9a56 100644
--- a/ipfs-api-backend-hyper/src/backend.rs
+++ b/ipfs-api-backend-hyper/src/backend.rs
@@ -55,18 +55,18 @@ impl Backend for HyperBackend {
where
Req: ApiRequest,
{
- req.absolute_url(&self.base).and_then(move |url| {
- let builder = http::Request::builder();
- let builder = builder.method(Req::METHOD.clone()).uri(url);
-
- let req = if let Some(form) = form {
- form.set_body_convert::<hyper::Body, multipart::client::multipart::Body>(builder)
- } else {
- builder.body(hyper::Body::empty())
- };
-
- req.map_err(From::from)
- })
+ let url = req.absolute_url(&self.base)?;
+
+ let builder = http::Request::builder();
+ let builder = builder.method(Req::METHOD.clone()).uri(url);
+
+ let req = if let Some(form) = form {
+ form.set_body_convert::<hyper::Body, multipart::Body>(builder)
+ } else {
+ builder.body(hyper::Body::empty())
+ }?;
+
+ Ok(req)
}
fn get_header<'a>(res: &'a Self::HttpResponse, key: HeaderName) -> Option<&'a HeaderValue> {
diff --git a/ipfs-api-backend-hyper/src/error.rs b/ipfs-api-backend-hyper/src/error.rs
index 9db1959..4760fc4 100644
--- a/ipfs-api-backend-hyper/src/error.rs
+++ b/ipfs-api-backend-hyper/src/error.rs
@@ -6,7 +6,6 @@
// copied, modified, or distributed except according to those terms.
//
-use std::string::FromUtf8Error;
use thiserror::Error;
#[derive(Debug, Error)]
@@ -20,18 +19,6 @@ pub enum Error {
#[error("http error `{0}`")]
Http(#[from] http::Error),
- #[error("json parse error `{0}`")]
- Parse(#[from] serde_json::Error),
-
- #[error("utf8 decoding error `{0}`")]
- ParseUtf8(#[from] FromUtf8Error),
-
- #[error("uri error `{0}`")]
- Url(#[from] http::uri::InvalidUri),
-
- #[error("url encoding error `{0}`")]
- EncodeUrl(#[from] serde_urlencoded::ser::Error),
-
#[error("ipfs client error `{0}`")]
IpfsClientError(#[from] ipfs_api_prelude::Error),
}