From 11c67e6cc3011fe27ff19eb694971765855a1cb7 Mon Sep 17 00:00:00 2001 From: Miaxos Date: Mon, 26 Jul 2021 17:32:49 +0000 Subject: [PATCH] misc: boxed error --- src/error.rs | 2 +- src/http/mod.rs | 8 +++++--- src/http/multipart.rs | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/error.rs b/src/error.rs index 3de4c39b..5d4bd242 100644 --- a/src/error.rs +++ b/src/error.rs @@ -213,7 +213,7 @@ pub enum ParseRequestError { /// The request's syntax was invalid. #[error("Invalid request: {0}")] - InvalidRequest(serde_json::Error), + InvalidRequest(Box), /// The request's files map was invalid. #[error("Invalid files map: {0}")] diff --git a/src/http/mod.rs b/src/http/mod.rs index 73f2c807..5c5146d9 100644 --- a/src/http/mod.rs +++ b/src/http/mod.rs @@ -52,15 +52,17 @@ pub async fn receive_batch_json(body: impl AsyncRead) -> Result(&data).map_err(ParseRequestError::InvalidRequest)?) + Ok(serde_json::from_slice::(&data) + .map_err(|e| ParseRequestError::InvalidRequest(Box::new(e)))?) } - +/// Receive a GraphQL request from a body as CBOR pub async fn receive_batch_cbor(body: impl AsyncRead) -> Result { let mut data = Vec::new(); futures_util::pin_mut!(body); body.read_to_end(&mut data) .await .map_err(ParseRequestError::Io)?; - Ok(serde_cbor::from_slice::(&data).map_err(ParseRequestError::InvalidRequest)?) + Ok(serde_cbor::from_slice::(&data) + .map_err(|e| ParseRequestError::InvalidRequest(Box::new(e)))?) } diff --git a/src/http/multipart.rs b/src/http/multipart.rs index 020a542e..5976fe50 100644 --- a/src/http/multipart.rs +++ b/src/http/multipart.rs @@ -70,7 +70,7 @@ pub(super) async fn receive_batch_multipart( let request_str = field.text().await?; request = Some( serde_json::from_str::(&request_str) - .map_err(ParseRequestError::InvalidRequest)?, + .map_err(|e| ParseRequestError::InvalidRequest(Box::new(e)))?, ); } Some("map") => {