use crate::{Error, Plausible};
use reqwest::{RequestBuilder, StatusCode};
use serde::{Deserialize, Serialize};
impl Plausible {
pub async fn health(&self) -> Result<HealthResponse, Error> {
let request: RequestBuilder = self.client.get(format!("{}/api/health", self.base_url));
let response = request.send().await?;
let status_code: StatusCode = response.status();
let bytes = response.bytes().await?;
if !status_code.is_success() {
return Err(Error::RequestFailed { bytes, status_code });
}
let response: HealthResponse = serde_json::from_slice(&bytes)?;
Ok(response)
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HealthResponse {
pub clickhouse: String,
pub postgres: String,
}