use url::Url; #[derive(Debug, Clone)] pub struct UptimeKumaEndpoints { base_url: Url, slug: String, } impl UptimeKumaEndpoints { pub fn new(base_url: &str, slug: &str) -> Result { let base_url = Url::parse(base_url.trim_end_matches("/"))?; Ok(Self { base_url, slug: slug.to_string(), }) } pub fn heartbeat_url(&self) -> String { format!("{}api/status-page/heartbeat/{}", self.base_url, self.slug) } pub fn status_page_url(&self) -> String { format!("{}api/status-page/{}", self.base_url, self.slug) } }