use super::*;
impl ApiClient {
pub async fn domains(&self, service_environment_id: &str) -> Result<Vec<Domain>> {
Ok(self
.get::<DomainsPage>(&format!(
"/api/infra/services/{service_environment_id}/domains"
))
.await?
.domains)
}
pub async fn add_domain(
&self,
service_environment_id: &str,
host: Option<&str>,
) -> Result<Domain> {
#[derive(serde::Deserialize)]
struct Added {
domain: Domain,
}
let body = match host {
Some(host) => serde_json::json!({ "host": host }),
None => serde_json::json!({}),
};
Ok(self
.post::<Added, _>(
&format!("/api/infra/services/{service_environment_id}/domains"),
&body,
)
.await?
.domain)
}
pub async fn remove_domain(&self, domain_id: &str) -> Result<()> {
self.delete(&format!("/api/infra/domains/{domain_id}"))
.await
}
pub async fn verify_domain(&self, domain_id: &str) -> Result<Domain> {
#[derive(serde::Deserialize)]
struct Verified {
domain: Domain,
}
Ok(self
.post_empty::<Verified>(&format!("/api/infra/domains/{domain_id}/verify"))
.await?
.domain)
}
}