use crate::LiveEvent;
use crate::client::FplApiClient;
use crate::models::live::LiveElementStat;
use anyhow::Result;
use std::collections::HashSet;
impl FplApiClient {
pub async fn get_live(&self, event_id: i32) -> Result<LiveEvent> {
let response: LiveEvent = self
.gets(format!("event/{}/live/", event_id).as_str())
.await?;
Ok(response)
}
pub async fn get_live_element_stats<I>(
&self,
event_id: i32,
element_ids: I,
) -> Result<Vec<LiveElementStat>>
where
I: IntoIterator<Item = i32>,
{
let response: LiveEvent = self
.gets(format!("event/{}/live/", event_id).as_str())
.await?;
let id_set: HashSet<i32> = element_ids.into_iter().collect();
let players: Vec<LiveElementStat> = response
.elements
.into_iter()
.filter(|p| id_set.contains(&p.id))
.collect();
Ok(players)
}
}