Skip to main content

shilp_sdk/
settings.rs

1use crate::client::Client;
2use crate::error::Result;
3use crate::models::{
4    GenericResponse, GetSettingsResponse, SettingsAvailableProvidersResponse, SettingsUpdateRequest,
5};
6
7impl Client {
8    /// Retrieves the server settings
9    pub async fn get_settings(&self) -> Result<GetSettingsResponse> {
10        self.do_request::<GetSettingsResponse, ()>(
11            reqwest::Method::GET,
12            "/api/settings/v1/",
13            None,
14            None,
15        )
16        .await
17    }
18
19    /// Updates server settings
20    pub async fn update_settings(
21        &self,
22        settings: &SettingsUpdateRequest,
23    ) -> Result<GenericResponse> {
24        self.do_request(
25            reqwest::Method::PUT,
26            "/api/settings/v1/",
27            Some(settings),
28            None,
29        )
30        .await
31    }
32
33    /// Lists available auth and integration providers
34    pub async fn list_providers(&self) -> Result<SettingsAvailableProvidersResponse> {
35        self.do_request::<SettingsAvailableProvidersResponse, ()>(
36            reqwest::Method::GET,
37            "/api/settings/v1/providers",
38            None,
39            None,
40        )
41        .await
42    }
43}