use super::*;
impl ApiClient {
pub async fn gateway_rules(
&self,
service_environment_id: &str,
) -> Result<Answer<GatewayRulesPage>> {
self.answer(
Method::GET,
&format!("/api/infra/services/{service_environment_id}/gateway-rules"),
None::<&()>,
)
.await
}
pub async fn update_gateway_rules(
&self,
service_environment_id: &str,
changes: &serde_json::Value,
) -> Result<Answer<GatewayRulesPage>> {
self.answer(
Method::PUT,
&format!("/api/infra/services/{service_environment_id}/gateway-rules"),
Some(changes),
)
.await
}
pub async fn preview_gateway_rules(
&self,
service_environment_id: &str,
url: &str,
method: Option<&str>,
origin: Option<&str>,
) -> Result<Answer<GatewayRulePreview>> {
let mut query = format!("?url={}", utf8_percent_encode(url, NON_ALPHANUMERIC));
for (name, value) in [("method", method), ("origin", origin)] {
if let Some(value) = value.map(str::trim).filter(|value| !value.is_empty()) {
query.push_str(&format!(
"&{name}={}",
utf8_percent_encode(value, NON_ALPHANUMERIC)
));
}
}
self.answer(
Method::GET,
&format!("/api/infra/services/{service_environment_id}/gateway-rules/preview{query}"),
None::<&()>,
)
.await
}
}