use crate::{
dto::{
error::Error,
public_status::{PublicHealth, PublicMetric, PublicMetricsRequest, PublicMetricsSnapshot},
},
workflow::metrics::publication::PublicMetricsWorkflow,
};
pub struct PublicStatusApi;
impl PublicStatusApi {
#[must_use]
pub fn health() -> PublicHealth {
PublicMetricsWorkflow::health()
}
#[must_use]
pub fn metrics(request: PublicMetricsRequest) -> PublicMetricsSnapshot {
PublicMetricsWorkflow::read(request)
}
pub fn sample_metrics() -> Result<(), Error> {
PublicMetricsWorkflow::sample().map_err(Into::into)
}
pub fn record_application_metrics(metrics: Vec<PublicMetric>) -> Result<(), Error> {
PublicMetricsWorkflow::record_application(metrics).map_err(Into::into)
}
}