use std::collections::HashMap;
use crate::{
get_authenticated, get_public, get_public_paged,
model::market::{MarketHistory, MarketOrder, MarketOrderType},
EsiResult, Paged,
};
pub async fn get_market_structure(
access_token: &str,
structure_id: i64,
) -> Result<Vec<MarketOrder>, reqwest::Error> {
get_authenticated::<Vec<MarketOrder>>(
access_token,
&format!("markets/structures/{}", structure_id),
None,
)
.await
}
pub async fn get_market_orders(
region_id: i32,
order_type: &MarketOrderType,
page: Option<i32>,
type_id: Option<i32>,
) -> EsiResult<Paged<Vec<MarketOrder>>> {
let mut params: HashMap<&str, String> = vec![("order_type", order_type.to_string())]
.into_iter()
.collect();
let page = page.unwrap_or(1);
params.insert("page", page.to_string());
if let Some(type_id) = type_id {
let type_id = type_id.to_string();
params.insert("type_id", type_id);
}
let result =
get_public_paged::<Vec<MarketOrder>>(&format!("markets/{}/orders", region_id), Some(params))
.await?;
Ok(result)
}
pub async fn get_market_history(
region_id: i32,
type_id: i32,
) -> Result<Vec<MarketHistory>, reqwest::Error> {
get_public::<Vec<MarketHistory>>(
&format!("markets/{}/history", region_id),
Some(vec![("type_id", type_id.to_string())].into_iter().collect()),
)
.await
}