use crate::api::helpers::{fetch_from_strava_api, strava_v3};
use crate::models::clubs;
use log::{info, trace};
pub fn get_club_by_id(
access_token: &str,
club_id: &str,
) -> Result<clubs::Club, Box<dyn std::error::Error>> {
trace!("Club ID: {:?}", club_id);
let url = strava_v3(format!("/clubs/{}", club_id));
info!("Calling Clubs by ID Strava API");
let response = fetch_from_strava_api(url, access_token)?;
let club: clubs::Club = response.json()?;
Ok(club)
}
pub fn get_club_members(
access_token: &str,
club_id: &str,
) -> Result<clubs::ClubMembers, Box<dyn std::error::Error>> {
let url = strava_v3(format!("/clubs/{}/members", club_id));
info!("Calling Strava Club Members API");
let response = fetch_from_strava_api(url, access_token)?;
let members: clubs::ClubMembers = response.json()?;
Ok(members)
}
pub fn get_club_admins(
access_token: &str,
club_id: &str,
) -> Result<clubs::ClubAdmins, Box<dyn std::error::Error>> {
let url = strava_v3(format!("/clubs/{}/admins", club_id));
info!("Calling Strava Club Admins API");
let response = fetch_from_strava_api(url, access_token)?;
let admins: clubs::ClubAdmins = response.json()?;
Ok(admins)
}
pub fn get_club_activities(
access_token: &str,
club_id: &str,
) -> Result<clubs::ClubActivities, Box<dyn std::error::Error>> {
let url = strava_v3(format!("/clubs/{}/activities", club_id));
info!("Calling Strava Get Club Activities API");
let response = fetch_from_strava_api(url, access_token)?;
let club_activities: clubs::ClubActivities = response.json()?;
Ok(club_activities)
}