1use crate::error::HtbError;
2use crate::models::season::{Season, SeasonListResponse, SeasonUserRank, SeasonUserRanksResponse};
3
4use super::HtbClient;
5
6pub struct SeasonApi<'a>(pub(crate) &'a HtbClient);
7
8impl SeasonApi<'_> {
9 pub async fn list(&self) -> Result<Vec<Season>, HtbError> {
10 let resp: SeasonListResponse = self.0.get("/api/v4/season/list").await?;
11 Ok(resp.data)
12 }
13
14 pub async fn user_ranks(&self, user_id: u64) -> Result<Vec<SeasonUserRank>, HtbError> {
15 let resp: SeasonUserRanksResponse = self
16 .0
17 .get(&format!("/api/v4/season/user/{user_id}/ranks"))
18 .await?;
19 Ok(resp.data)
20 }
21}