uptrakit_openapi_client/
settings_nats.rs1use crate::Result;
2use crate::UptrakitClient;
3use crate::types_impl::settings_nats::{NatsSettingsResponse, UpdateNatsSettingsRequest};
4
5impl UptrakitClient {
6 pub async fn get_nats_settings(&self) -> Result<NatsSettingsResponse> {
8 self.get(crate::paths::settings_nats::BASE).await
9 }
10
11 pub async fn update_nats_settings(
15 &self,
16 req: &UpdateNatsSettingsRequest,
17 ) -> Result<NatsSettingsResponse> {
18 self.put_json(crate::paths::settings_nats::BASE, req).await
19 }
20}
21
22#[cfg(test)]
23mod tests {
24 use crate::types_impl::settings_nats::UpdateNatsSettingsRequest;
25
26 #[test]
27 fn update_nats_request_with_url_serializes() {
28 let req = UpdateNatsSettingsRequest {
29 url: Some(serde_json::json!("nats://host:4222")),
30 };
31 let json = serde_json::to_value(&req).expect("serialize");
32 assert_eq!(json["url"], "nats://host:4222");
33 }
34
35 #[test]
36 fn update_nats_request_clear_url_serializes_null() {
37 let req = UpdateNatsSettingsRequest {
38 url: Some(serde_json::Value::Null),
39 };
40 let json = serde_json::to_value(&req).expect("serialize");
41 assert!(json["url"].is_null());
42 }
43
44 #[test]
45 fn update_nats_request_no_url_omits_field() {
46 let req = UpdateNatsSettingsRequest { url: None };
47 let json = serde_json::to_value(&req).expect("serialize");
48 assert!(json.get("url").is_none() || json["url"].is_null());
49 }
50}