Skip to content

Commit ac57183

Browse files
authored
refactor!: simplify cli (#516)
Nukes a lot of stuff, tbh.
1 parent fd41f2b commit ac57183

File tree

26 files changed

+549
-954
lines changed

26 files changed

+549
-954
lines changed

crates/api/src/client.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,12 @@ impl Client {
220220
if let Some(headers) = headers.into() {
221221
request = request.headers(headers);
222222
}
223-
let response = request.send().await?.error_for_status()?;
223+
let response = request.send().await?;
224+
if !response.status().is_success() {
225+
let status_code = response.status();
226+
let text = response.text().await.ok().unwrap_or_default();
227+
return Err(Error::Request { status_code, text });
228+
}
224229
response.json().await.map_err(Error::from)
225230
}
226231

@@ -356,12 +361,8 @@ fn stream_pages(
356361

357362
fn not_found_to_none<T>(result: Result<T>) -> Result<Option<T>> {
358363
let mut result = result.map(Some);
359-
if let Err(Error::Reqwest(ref err)) = result {
360-
if err
361-
.status()
362-
.map(|s| s == StatusCode::NOT_FOUND)
363-
.unwrap_or_default()
364-
{
364+
if let Err(Error::Request { status_code, .. }) = result {
365+
if status_code == StatusCode::NOT_FOUND {
365366
result = Ok(None);
366367
}
367368
}

crates/api/src/error.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,17 @@ pub enum Error {
7575
#[cfg(feature = "client")]
7676
Reqwest(#[from] reqwest::Error),
7777

78+
/// A search error.
79+
#[error("HTTP status error ({status_code}): {text}")]
80+
#[cfg(feature = "client")]
81+
Request {
82+
/// The status code
83+
status_code: reqwest::StatusCode,
84+
85+
/// The text of the server response.
86+
text: String,
87+
},
88+
7889
/// A search has both bbox and intersects.
7990
#[error("search has bbox and intersects")]
8091
SearchHasBboxAndIntersects(Box<Search>),

crates/cli/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ rust-version.workspace = true
1414
[features]
1515
default = ["pgstac"]
1616
duckdb = ["dep:stac-duckdb", "dep:duckdb"]
17-
pgstac = ["stac-server/pgstac", "dep:pgstac"]
17+
pgstac = ["stac-server/pgstac"]
1818
python = ["dep:pyo3", "pgstac"]
1919

2020
[dependencies]
@@ -26,7 +26,6 @@ duckdb = { workspace = true, optional = true, features = [
2626
object_store.workspace = true
2727
openssl.workspace = true # same as duckdb, these openssls are just for bundling
2828
openssl-src.workspace = true
29-
pgstac = { workspace = true, optional = true }
3029
pyo3 = { workspace = true, optional = true }
3130
reqwest.workspace = true
3231
serde.workspace = true

0 commit comments

Comments
 (0)