bw_web_api_rs/endpoints/
leaderboard_entity.rs

1use crate::endpoints::Endpoint;
2use crate::error::ApiError;
3use crate::models::LeaderboardResponse;
4use crate::types::Leaderboard;
5
6pub struct LeaderboardEntityEndpoint {
7    leaderboard_id: Leaderboard,
8}
9
10impl LeaderboardEntityEndpoint {
11    pub fn new(leaderboard_id: Leaderboard) -> Self {
12        Self { leaderboard_id }
13    }
14}
15
16impl Endpoint for LeaderboardEntityEndpoint {
17    type Request = ();
18    type Response = LeaderboardResponse;
19
20    fn endpoint(&self) -> String {
21        format!("/web-api/v1/leaderboard/{}", self.leaderboard_id as i32)
22    }
23}
24
25impl crate::client::ApiClient {
26    /// Get leaderboard entries
27    ///
28    /// Endpoint: /web-api/v1/leaderboard/{leaderboard_id}
29    pub async fn get_leaderboard_entity(
30        &self,
31        leaderboard_id: Leaderboard,
32    ) -> Result<LeaderboardResponse, ApiError> {
33        let endpoint = LeaderboardEntityEndpoint::new(leaderboard_id);
34        self.request(&endpoint, &()).await
35    }
36}