bw_web_api_rs/endpoints/
leaderboard_entity.rs1use 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 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}