Skip to content

Commit e79ed9e

Browse files
authored
Merge pull request #2999 from ProvableHQ/fix_restquery_response
Improve RESTQuery error
2 parents c5e4865 + 063de51 commit e79ed9e

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

.circleci/config.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,7 +1063,10 @@ jobs:
10631063
name: Check for unused dependencies
10641064
no_output_timeout: 10m
10651065
command: |
1066-
cargo install [email protected]
1066+
set -euo pipefail
1067+
if ! command -v cargo-machete >/dev/null 2>&1; then
1068+
cargo install [email protected] --locked
1069+
fi
10671070
cargo machete
10681071
- clear_environment:
10691072
cache_key: v4.2.0-rust-1.88.0-machete-cache
@@ -1088,7 +1091,8 @@ jobs:
10881091
executor: rust-docker
10891092
resource_class: << pipeline.parameters.twoxlarge >>
10901093
steps:
1091-
- checkout
1094+
- checkout:
1095+
method: full
10921096
- setup_environment:
10931097
cache_key: v4.2.0-rust-1.88.0-cargo-semver-checks-cache
10941098
- run:

ledger/query/src/query/rest.rs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ impl<N: Network> RestQuery<N> {
224224
.with_context(|| format!("Failed to fetch from {endpoint}"))?;
225225

226226
if response.status().is_success() {
227-
response.body_mut().read_json().with_context(|| "Failed to parse JSON response")
227+
response.body_mut().read_json().with_context(|| format!("Failed to parse JSON response from {endpoint}"))
228228
} else {
229229
let content_type = response
230230
.headers()
@@ -236,11 +236,16 @@ impl<N: Network> RestQuery<N> {
236236
// Convert returned error into an `anyhow::Error`.
237237
// Depending on the API version, the error is either encoded as a string or as a JSON.
238238
if content_type.contains("json") {
239-
let error: RestError =
240-
response.body_mut().read_json().with_context(|| "Failed to parse JSON error response")?;
239+
let error: RestError = response
240+
.body_mut()
241+
.read_json()
242+
.with_context(|| format!("Failed to parse JSON error response from {endpoint}"))?;
241243
Err(error.parse().context(format!("Failed to fetch from {endpoint}")))
242244
} else {
243-
let error = response.body_mut().read_to_string().with_context(|| "Failed to read error message")?;
245+
let error = response
246+
.body_mut()
247+
.read_to_string()
248+
.with_context(|| format!("Failed to read error message {endpoint}"))?;
244249
Err(anyhow!(error).context(format!("Failed to fetch from {endpoint}")))
245250
}
246251
}
@@ -256,10 +261,13 @@ impl<N: Network> RestQuery<N> {
256261
let response = reqwest::get(&endpoint).await.with_context(|| format!("Failed to fetch from {endpoint}"))?;
257262

258263
if response.status().is_success() {
259-
response.json().await.with_context(|| "Failed to parse JSON response")
264+
response.json().await.with_context(|| format!("Failed to parse JSON response from {endpoint}"))
260265
} else {
261266
// Convert returned error into an `anyhow::Error`.
262-
let error: RestError = response.json().await.with_context(|| "Failed to parse JSON error response")?;
267+
let error: RestError = response
268+
.json()
269+
.await
270+
.with_context(|| format!("Failed to parse JSON error response from {endpoint}"))?;
263271
Err(error.parse().context(format!("Failed to fetch from {endpoint}")))
264272
}
265273
}

0 commit comments

Comments
 (0)