use super::urls::builders;
use crate::client::YahooClient;
use crate::constants::sectors::Sector;
use crate::error::Result;
use crate::models::sectors::SectorData;
pub async fn fetch(client: &YahooClient, sector_type: Sector) -> Result<SectorData> {
let url = builders::sector(sector_type.as_api_path());
let response = client.request_with_crumb(&url).await?;
let json: serde_json::Value = response.json().await?;
parse_sector_response(&json)
}
fn parse_sector_response(json: &serde_json::Value) -> Result<SectorData> {
SectorData::from_response(json).map_err(|e| {
crate::error::FinanceError::ResponseStructureError {
field: "sector".to_string(),
context: e,
}
})
}