strava_wrapper/filters/
stats.rs1use crate::models::ActivityStats;
2use crate::query::{
3 get_with_query_and_path, Endpoint, ErrorWrapper, PathQuery, Query, Sendable, ID,
4};
5use async_trait::async_trait;
6use std::collections::HashMap;
7use strava_wrapper_macros::{Endpoint, PathQuery, Query, ID};
8
9#[derive(Debug, Clone, Endpoint, Query, PathQuery, ID)]
10pub struct GetAthleteStats {
11 url: String,
12 token: String,
13 path: String,
14 query: Vec<(String, String)>,
15 path_params: Vec<(String, String)>,
16}
17
18impl GetAthleteStats {
19 pub fn new(url: impl Into<String>, token: impl Into<String>, path: impl Into<String>) -> Self {
20 Self {
21 url: url.into(),
22 token: token.into(),
23 path: path.into(),
24 query: Vec::new(),
25 path_params: Vec::new(),
26 }
27 }
28}
29
30#[async_trait]
31impl Sendable<ActivityStats> for GetAthleteStats {
32 async fn send(mut self) -> Result<ActivityStats, ErrorWrapper> {
33 get_with_query_and_path(self.clone(), &self.token).await
34 }
35}