bw_web_api_rs/endpoints/
leaderboard_name_search.rs1use crate::endpoints::Endpoint;
2use crate::error::ApiError;
3use crate::models::LeaderboardNameSearchResponse;
4use crate::types::Leaderboard;
5
6pub struct LeaderboardNameSearchEndpoint {
7 leaderboard_id: Leaderboard,
8 battletag: String,
9}
10
11impl LeaderboardNameSearchEndpoint {
12 pub fn new(leaderboard_id: Leaderboard, battletag: String) -> Self {
13 Self {
14 leaderboard_id,
15 battletag,
16 }
17 }
18}
19
20impl Endpoint for LeaderboardNameSearchEndpoint {
21 type Request = ();
22 type Response = LeaderboardNameSearchResponse;
23
24 fn endpoint(&self) -> String {
25 format!(
26 "/web-api/v1/leaderboard-name-search/{}/{}",
27 self.leaderboard_id as i32,
28 urlencoding::encode(&self.battletag)
29 )
30 }
31}
32
33impl crate::client::ApiClient {
34 pub async fn search_leaderboard_by_battletag(
38 &self,
39 leaderboard_id: Leaderboard,
40 battletag: String,
41 ) -> Result<LeaderboardNameSearchResponse, ApiError> {
42 let endpoint = LeaderboardNameSearchEndpoint::new(leaderboard_id, battletag);
43 self.request(&endpoint, &()).await
44 }
45}