uptrakit_openapi_client/
settings_provider_github.rs1use crate::Result;
2use crate::UptrakitClient;
3use crate::types_impl::settings_provider_github::{
4 GitHubProviderSettingsResponse, UpdateGitHubProviderSettingsRequest,
5};
6
7impl UptrakitClient {
8 pub async fn get_github_provider_settings(&self) -> Result<GitHubProviderSettingsResponse> {
10 self.get(crate::paths::settings_provider_github::BASE).await
11 }
12
13 pub async fn update_github_provider_settings(
15 &self,
16 req: &UpdateGitHubProviderSettingsRequest,
17 ) -> Result<GitHubProviderSettingsResponse> {
18 self.put_json(crate::paths::settings_provider_github::BASE, req)
19 .await
20 }
21}
22
23#[cfg(test)]
24mod tests {
25 use crate::types_impl::settings_provider_github::UpdateGitHubProviderSettingsRequest;
26
27 #[test]
28 fn settings_provider_github_update_request_set_serializes() {
29 let req = UpdateGitHubProviderSettingsRequest {
30 auth_token: Some("ghp_abc123".to_string()),
31 api_base_url: Some("https://ghe.example.com/api/v3".to_string()),
32 };
33 let json = serde_json::to_value(&req).expect("serialize");
34 assert_eq!(json["auth_token"], "ghp_abc123");
35 assert_eq!(json["api_base_url"], "https://ghe.example.com/api/v3");
36 }
37
38 #[test]
39 fn settings_provider_github_update_request_clear_serializes() {
40 let req = UpdateGitHubProviderSettingsRequest {
41 auth_token: Some(String::new()),
42 api_base_url: Some(String::new()),
43 };
44 let json = serde_json::to_value(&req).expect("serialize");
45 assert_eq!(json["auth_token"], "");
46 assert_eq!(json["api_base_url"], "");
47 }
48
49 #[test]
50 fn settings_provider_github_update_request_keep_serializes() {
51 let req = UpdateGitHubProviderSettingsRequest {
52 auth_token: Some("***".to_string()),
53 api_base_url: None,
54 };
55 let json = serde_json::to_value(&req).expect("serialize");
56 assert_eq!(json["auth_token"], "***");
57 assert!(json.get("api_base_url").is_none());
58 }
59}