use crate::client::HevyClient;
use crate::error::Result;
use crate::models::{
CreateExerciseTemplateRequest, CreatedExerciseTemplate, ExerciseTemplate, ExerciseTemplatesPage,
};
impl HevyClient {
pub async fn list_exercise_templates(
&self,
page: Option<u32>,
page_size: Option<u32>,
) -> Result<ExerciseTemplatesPage> {
self.get(
"/v1/exercise_templates",
&[
("page", page.map(|p| p.to_string())),
("pageSize", page_size.map(|p| p.to_string())),
],
)
.await
}
pub async fn get_exercise_template(&self, exercise_template_id: &str) -> Result<ExerciseTemplate> {
self.get(
&format!("/v1/exercise_templates/{exercise_template_id}"),
&[],
)
.await
}
pub async fn create_exercise_template(
&self,
request: &CreateExerciseTemplateRequest,
) -> Result<i64> {
let response: CreatedExerciseTemplate =
self.post("/v1/exercise_templates", request).await?;
Ok(response.id)
}
}