strava_wrapper/filters/
clubs.rs

1use crate::models::Lap;
2use crate::query::{
3    get_with_query_and_path, Endpoint, ErrorWrapper, Page, PathQuery, PerPage, Query, Sendable, ID,
4};
5use async_trait::async_trait;
6use std::collections::HashMap;
7use strava_wrapper_macros::{Endpoint, Page, PathQuery, PerPage, Query, ID};
8
9#[derive(Debug, Clone, Endpoint, Query, PathQuery, ID, Page, PerPage)]
10pub struct ListClubActivities {
11    url: String,
12    token: String,
13    path: String,
14    query: Vec<(String, String)>,
15    path_params: Vec<(String, String)>,
16}
17#[async_trait]
18impl Sendable<Vec<Lap>> for ListClubActivities {
19    async fn send(mut self) -> Result<Vec<Lap>, ErrorWrapper> {
20        get_with_query_and_path(self.clone(), &self.token).await
21    }
22}
23
24#[derive(Debug, Clone, Endpoint, Query, PathQuery, ID, Page, PerPage)]
25pub struct ListClubAdmins {
26    url: String,
27    token: String,
28    path: String,
29    query: Vec<(String, String)>,
30    path_params: Vec<(String, String)>,
31}
32
33#[async_trait]
34impl Sendable<Vec<Lap>> for ListClubAdmins {
35    async fn send(mut self) -> Result<Vec<Lap>, ErrorWrapper> {
36        get_with_query_and_path(self.clone(), &self.token).await
37    }
38}
39
40#[derive(Debug, Clone, Endpoint, Query, PathQuery, ID)]
41pub struct GetClub {
42    url: String,
43    token: String,
44    path: String,
45    query: Vec<(String, String)>,
46    path_params: Vec<(String, String)>,
47}
48
49#[async_trait]
50impl Sendable<Vec<Lap>> for GetClub {
51    async fn send(mut self) -> Result<Vec<Lap>, ErrorWrapper> {
52        get_with_query_and_path(self.clone(), &self.token).await
53    }
54}
55
56#[derive(Debug, Clone, Endpoint, Query, PathQuery, ID, Page, PerPage)]
57pub struct GetClubMembers {
58    url: String,
59    token: String,
60    path: String,
61    query: Vec<(String, String)>,
62    path_params: Vec<(String, String)>,
63}
64
65#[async_trait]
66impl Sendable<Vec<Lap>> for GetClubMembers {
67    async fn send(mut self) -> Result<Vec<Lap>, ErrorWrapper> {
68        get_with_query_and_path(self.clone(), &self.token).await
69    }
70}