use crate::error::Error;
use crate::generated::types::{CalendarPeriod, CalendarYear};
pub use crate::generated::services::calendar_periods::*;
impl CalendarPeriods<'_> {
pub async fn day(&self, date: &str) -> Result<CalendarPeriod, Error> {
self.get_day(date).await
}
pub async fn days(&self, starts_at: &str) -> Result<Vec<CalendarPeriod>, Error> {
let params = ListCalendarDaysParams {
starts_at: optional(starts_at),
};
Ok(self.list_days(¶ms).await?.days)
}
pub async fn week(&self, date: &str) -> Result<CalendarPeriod, Error> {
self.get_week(date).await
}
pub async fn weeks(
&self,
starts_at: &str,
centered_at: &str,
) -> Result<Vec<CalendarPeriod>, Error> {
let params = ListCalendarWeeksParams {
starts_at: optional(starts_at),
centered_at: optional(centered_at),
};
Ok(self.list_weeks(¶ms).await?.weeks)
}
pub async fn year(&self, date: &str) -> Result<CalendarYear, Error> {
self.get_year(date).await
}
}
fn optional(value: &str) -> Option<String> {
if value.is_empty() {
None
} else {
Some(value.to_string())
}
}