Skip to content

Commit 5001a62

Browse files
committed
Implement custom headers in graphql-client-web
1 parent 0acb86a commit 5001a62

File tree

3 files changed

+14
-20
lines changed

3 files changed

+14
-20
lines changed

graphql_client_web/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ futures = "*"
1313
graphql_client = { path = "../graphql_client", version = "0.5.1" }
1414
log = "0.4.5"
1515
serde_json = "1.0.32"
16-
wasm-bindgen = "0.2.25"
16+
wasm-bindgen = "0.2.29"
1717
wasm-bindgen-futures = "0.3.2"
1818
js-sys = "0.3.5"
1919

graphql_client_web/src/lib.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
55
// #![deny(warnings)]
66
#![deny(missing_docs)]
7-
#![feature(non_exhaustive)]
87

98
#[macro_use]
109
pub extern crate graphql_client;
@@ -36,7 +35,6 @@ pub struct Client {
3635
///
3736
/// not exhaustive
3837
#[derive(Debug, Fail, PartialEq)]
39-
#[non_exhaustive]
4038
pub enum ClientError {
4139
/// The body couldn't be built
4240
#[fail(display = "Request body is not a valid string")]
@@ -92,6 +90,7 @@ impl Client {
9290
{
9391
// this can be removed when we convert to async/await
9492
let endpoint = self.endpoint.clone();
93+
let custom_headers = self.headers.clone();
9594

9695
web_sys::window()
9796
.ok_or_else(|| ClientError::NoWindow)
@@ -113,20 +112,21 @@ impl Client {
113112
// "Request constructor threw");
114113
})
115114
.and_then(move |(window, request)| {
116-
let request: Result<web_sys::Request, _> = request
117-
.headers()
115+
let mut headers = request.headers();
116+
headers
118117
.set("Content-Type", "application/json")
119-
.map_err(|_| ClientError::RequestError)
120-
.map(|_| request);
118+
.map_err(|_| ClientError::RequestError)?;
119+
headers
120+
.set("Accept", "application/json")
121+
.map_err(|_| ClientError::RequestError)?;
121122

122-
let request: Result<web_sys::Request, _> = request.and_then(|req| {
123-
req.headers()
124-
.set("Accept", "application/json")
125-
.map_err(|_| ClientError::RequestError)
126-
.map(|_| req)
127-
});
123+
for (header_name, header_value) in custom_headers.iter() {
124+
headers.set(header_name, header_value)
125+
.map_err(|_| ClientError::RequestError)?;
128126

129-
request.map(move |request| (window, request))
127+
}
128+
129+
Ok((window, request))
130130
})
131131
.and_then(move |(window, request)| {
132132
JsFuture::from(window.fetch_with_request(&request))

graphql_client_web/tests/web.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,6 @@ fn test_bad_url() -> impl Future<Item = (), Error = JsValue> {
101101
"NetworkError when attempting to fetch resource.".into()
102102
)
103103
);
104-
JsValue::NULL
105104
})
106105
.then(|_| Ok(()))
107106
}
108-
109-
#[wasm_bindgen_test]
110-
fn test_404() {
111-
unimplemented!()
112-
}

0 commit comments

Comments
 (0)