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
use log::info;
use std::rc::Rc;
use surf;

use crate::models::DetailedActivity;
use crate::configuration::Configuration;

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: u64,
        access_token: String,
    ) -> Result<DetailedActivity, Box<dyn std::error::Error + Send + Sync + 'static>> {
        info!("get_activity_by_id {}", id);
        let uri = format!("{}/activities/{id}", self.configuration.base_path, id=id);
        let authorization = format!("Bearer {}", access_token);
        let activity: DetailedActivity = surf::get(uri).set_header("Authorization", authorization).recv_json().await?;
        Ok(activity)
    }
}