1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
use log::debug; use std::rc::Rc; use surf; use crate::configuration::Configuration; use crate::models::DetailedActivity; pub struct ActivitiesApi { configuration: Rc<Configuration>, } impl ActivitiesApi { pub fn new(configuration: Rc<Configuration>) -> ActivitiesApi { ActivitiesApi { configuration: configuration, } } pub async fn get_activity_by_id( &self, id: i64, access_token: String, ) -> Result<DetailedActivity, Box<dyn std::error::Error + Send + Sync + 'static>> { debug!("get_activity_by_id {}", id); let uri = format!("{}/activities/{id}", self.configuration.base_path, id = id); let authorization = format!("Bearer {}", access_token); surf::get(uri) .set_header("Authorization", authorization) .recv_json::<DetailedActivity>() .await } pub async fn get_logged_in_athlete_activities( &self, before: i32, after: i32, page: i32, per_page: i32, access_token: String, ) -> Result<Vec<DetailedActivity>, Box<dyn std::error::Error + Send + Sync + 'static>> { debug!("get_logged_in_athlete_activities"); let uri = format!( "{}/athlete/activities?before={}&after={}&page={}&per_page={}", self.configuration.base_path, before, after, page, per_page ); let authorization = format!("Bearer {}", access_token); surf::get(uri) .set_header("Authorization", authorization) .recv_json::<Vec<DetailedActivity>>() .await } }