Skip to content

Commit d087b27

Browse files
authored
Passing the access token for the xorb calls (#25)
1 parent aef7502 commit d087b27

File tree

1 file changed

+42
-13
lines changed

1 file changed

+42
-13
lines changed

cas_client/src/remote_client.rs

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,12 @@ impl CASAPIClient {
116116

117117
pub async fn exists(&self, key: &Key) -> Result<bool> {
118118
let url = Url::parse(&format!("{}/xorb/{key}", self.endpoint))?;
119-
let response = self.client.head(url).send().await?;
119+
let response = self
120+
.client
121+
.head(url)
122+
.headers(self.request_headers())
123+
.send()
124+
.await?;
120125
match response.status() {
121126
StatusCode::OK => Ok(true),
122127
StatusCode::NOT_FOUND => Ok(false),
@@ -128,7 +133,12 @@ impl CASAPIClient {
128133

129134
pub async fn get_length(&self, key: &Key) -> Result<Option<u64>> {
130135
let url = Url::parse(&format!("{}/xorb/{key}", self.endpoint))?;
131-
let response = self.client.head(url).send().await?;
136+
let response = self
137+
.client
138+
.head(url)
139+
.headers(self.request_headers())
140+
.send()
141+
.await?;
132142
let status = response.status();
133143
if status == StatusCode::NOT_FOUND {
134144
return Ok(None);
@@ -179,7 +189,13 @@ impl CASAPIClient {
179189
writer.set_position(0);
180190
let data = writer.into_inner();
181191

182-
let response = self.client.post(url).body(data).send().await?;
192+
let response = self
193+
.client
194+
.post(url)
195+
.headers(self.request_headers())
196+
.body(data)
197+
.send()
198+
.await?;
183199
let response_body = response.bytes().await?;
184200
let response_parsed: UploadXorbResponse = serde_json::from_reader(response_body.reader())?;
185201

@@ -231,15 +247,12 @@ impl CASAPIClient {
231247
file_id.hex()
232248
))?;
233249

234-
let mut headers = HeaderMap::new();
235-
if let Some(tok) = &self.token {
236-
headers.insert(
237-
"Authorization",
238-
HeaderValue::from_str(&format!("Bearer {}", tok)).unwrap(),
239-
);
240-
}
241-
242-
let response = self.client.get(url).headers(headers).send().await?;
250+
let response = self
251+
.client
252+
.get(url)
253+
.headers(self.request_headers())
254+
.send()
255+
.await?;
243256
let response_body = response.bytes().await?;
244257
let response_parsed: QueryReconstructionResponse =
245258
serde_json::from_reader(response_body.reader())?;
@@ -249,13 +262,29 @@ impl CASAPIClient {
249262

250263
pub async fn shard_query_chunk(&self, key: &Key) -> Result<QueryChunkResponse> {
251264
let url = Url::parse(&format!("{}/chunk/{key}", self.endpoint))?;
252-
let response = self.client.get(url).send().await?;
265+
let response = self
266+
.client
267+
.get(url)
268+
.headers(self.request_headers())
269+
.send()
270+
.await?;
253271
let response_body = response.bytes().await?;
254272
let response_parsed: QueryChunkResponse = serde_json::from_reader(response_body.reader())?;
255273

256274
Ok(response_parsed)
257275
}
258276

277+
fn request_headers(&self) -> HeaderMap {
278+
let mut headers = HeaderMap::new();
279+
if let Some(tok) = &self.token {
280+
headers.insert(
281+
"Authorization",
282+
HeaderValue::from_str(&format!("Bearer {}", tok)).unwrap(),
283+
);
284+
}
285+
headers
286+
}
287+
259288
async fn post_json<ReqT, RespT>(&self, url: Url, request_body: &ReqT) -> Result<RespT>
260289
where
261290
ReqT: Serialize,

0 commit comments

Comments
 (0)