Improve alpaca request error handling
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
use super::{error_to_backoff, status_error_to_backoff};
|
||||
use crate::types::alpaca::api::incoming::clock::Clock;
|
||||
use backoff::{future::retry_notify, ExponentialBackoff};
|
||||
use governor::DefaultDirectRateLimiter;
|
||||
@@ -18,17 +19,13 @@ pub async fn get(
|
||||
client
|
||||
.get(&format!("https://{}.alpaca.markets/v2/clock", api_base))
|
||||
.send()
|
||||
.await?
|
||||
.await
|
||||
.map_err(error_to_backoff)?
|
||||
.error_for_status()
|
||||
.map_err(|e| match e.status() {
|
||||
Some(reqwest::StatusCode::BAD_REQUEST | reqwest::StatusCode::FORBIDDEN) => {
|
||||
backoff::Error::Permanent(e)
|
||||
}
|
||||
_ => e.into(),
|
||||
})?
|
||||
.map_err(status_error_to_backoff)?
|
||||
.json::<Clock>()
|
||||
.await
|
||||
.map_err(backoff::Error::Permanent)
|
||||
.map_err(error_to_backoff)
|
||||
},
|
||||
|e, duration: Duration| {
|
||||
warn!(
|
||||
|
Reference in New Issue
Block a user