uptime-kuma-dashboard/src/api/endpoints.rs
2026-01-05 13:51:55 -04:00

43 lines
1,017 B
Rust

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<Self, url::ParseError> {
let base_url = Url::parse(base_url.trim_end_matches("/"))?;
Ok(Self {
base_url,
slug: slug.to_string(),
})
}
pub fn heartbeat_url(&self) -> String {
let mut url = self.get_url();
url.path_segments_mut()
.unwrap()
.push("heartbeat")
.push(&self.slug);
url.to_string()
}
pub fn status_page_url(&self) -> String {
let mut url = self.get_url();
url.path_segments_mut()
.unwrap()
.push(&self.slug);
url.to_string()
}
fn get_url(&self) -> Url {
let mut url = self.base_url.clone();
url.path_segments_mut()
.unwrap()
.push("api")
.push("status-page");
url
}
}