strava_wrapper/filters/
clubs.rs1use 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}