Skip to main content

uptrakit_openapi_client/
settings_provider_github.rs

1use crate::Result;
2use crate::UptrakitClient;
3use crate::types_impl::settings_provider_github::{
4    GitHubProviderSettingsResponse, UpdateGitHubProviderSettingsRequest,
5};
6
7impl UptrakitClient {
8    /// Get global GitHub provider settings.
9    pub async fn get_github_provider_settings(&self) -> Result<GitHubProviderSettingsResponse> {
10        self.get(crate::paths::settings_provider_github::BASE).await
11    }
12
13    /// Update global GitHub provider settings.
14    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}