Skip to main content

bitwarden_api_api/apis/
provider_organizations_api.rs

1/*
2 * Bitwarden Internal API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: latest
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use std::sync::Arc;
12
13use async_trait::async_trait;
14#[cfg(feature = "mockall")]
15use mockall::automock;
16use reqwest;
17use serde::{Deserialize, Serialize, de::Error as _};
18
19use super::{Error, configuration};
20use crate::{
21    apis::{AuthRequired, ContentType, ResponseContent},
22    models,
23};
24
25#[cfg_attr(feature = "mockall", automock)]
26#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
27#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
28pub trait ProviderOrganizationsApi: Send + Sync {
29    /// POST /providers/{providerId}/organizations/add
30    async fn add<'a>(
31        &self,
32        provider_id: uuid::Uuid,
33        provider_organization_add_request_model: Option<
34            models::ProviderOrganizationAddRequestModel,
35        >,
36    ) -> Result<(), Error<AddError>>;
37
38    /// DELETE /providers/{providerId}/organizations/{id}
39    async fn delete<'a>(
40        &self,
41        provider_id: uuid::Uuid,
42        id: uuid::Uuid,
43    ) -> Result<(), Error<DeleteError>>;
44
45    /// GET /providers/{providerId}/organizations
46    async fn get<'a>(
47        &self,
48        provider_id: uuid::Uuid,
49    ) -> Result<
50        models::ProviderOrganizationOrganizationDetailsResponseModelListResponseModel,
51        Error<GetError>,
52    >;
53
54    /// POST /providers/{providerId}/organizations
55    async fn post<'a>(
56        &self,
57        provider_id: uuid::Uuid,
58        provider_organization_create_request_model: Option<
59            models::ProviderOrganizationCreateRequestModel,
60        >,
61    ) -> Result<models::ProviderOrganizationResponseModel, Error<PostError>>;
62}
63
64pub struct ProviderOrganizationsApiClient {
65    configuration: Arc<configuration::Configuration>,
66}
67
68impl ProviderOrganizationsApiClient {
69    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
70        Self { configuration }
71    }
72}
73
74#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
75#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
76impl ProviderOrganizationsApi for ProviderOrganizationsApiClient {
77    async fn add<'a>(
78        &self,
79        provider_id: uuid::Uuid,
80        provider_organization_add_request_model: Option<
81            models::ProviderOrganizationAddRequestModel,
82        >,
83    ) -> Result<(), Error<AddError>> {
84        let local_var_configuration = &self.configuration;
85
86        let local_var_client = &local_var_configuration.client;
87
88        let local_var_uri_str = format!(
89            "{}/providers/{providerId}/organizations/add",
90            local_var_configuration.base_path,
91            providerId = provider_id
92        );
93        let mut local_var_req_builder =
94            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
95
96        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
97        local_var_req_builder =
98            local_var_req_builder.json(&provider_organization_add_request_model);
99
100        let local_var_resp = local_var_req_builder.send().await?;
101
102        let local_var_status = local_var_resp.status();
103        let local_var_content = local_var_resp.text().await?;
104
105        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
106            Ok(())
107        } else {
108            let local_var_entity: Option<AddError> = serde_json::from_str(&local_var_content).ok();
109            let local_var_error = ResponseContent {
110                status: local_var_status,
111                content: local_var_content,
112                entity: local_var_entity,
113            };
114            Err(Error::ResponseError(local_var_error))
115        }
116    }
117
118    async fn delete<'a>(
119        &self,
120        provider_id: uuid::Uuid,
121        id: uuid::Uuid,
122    ) -> Result<(), Error<DeleteError>> {
123        let local_var_configuration = &self.configuration;
124
125        let local_var_client = &local_var_configuration.client;
126
127        let local_var_uri_str = format!(
128            "{}/providers/{providerId}/organizations/{id}",
129            local_var_configuration.base_path,
130            providerId = provider_id,
131            id = id
132        );
133        let mut local_var_req_builder =
134            local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
135
136        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
137
138        let local_var_resp = local_var_req_builder.send().await?;
139
140        let local_var_status = local_var_resp.status();
141        let local_var_content = local_var_resp.text().await?;
142
143        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
144            Ok(())
145        } else {
146            let local_var_entity: Option<DeleteError> =
147                serde_json::from_str(&local_var_content).ok();
148            let local_var_error = ResponseContent {
149                status: local_var_status,
150                content: local_var_content,
151                entity: local_var_entity,
152            };
153            Err(Error::ResponseError(local_var_error))
154        }
155    }
156
157    async fn get<'a>(
158        &self,
159        provider_id: uuid::Uuid,
160    ) -> Result<
161        models::ProviderOrganizationOrganizationDetailsResponseModelListResponseModel,
162        Error<GetError>,
163    > {
164        let local_var_configuration = &self.configuration;
165
166        let local_var_client = &local_var_configuration.client;
167
168        let local_var_uri_str = format!(
169            "{}/providers/{providerId}/organizations",
170            local_var_configuration.base_path,
171            providerId = provider_id
172        );
173        let mut local_var_req_builder =
174            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
175
176        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
177
178        let local_var_resp = local_var_req_builder.send().await?;
179
180        let local_var_status = local_var_resp.status();
181        let local_var_content_type = local_var_resp
182            .headers()
183            .get("content-type")
184            .and_then(|v| v.to_str().ok())
185            .unwrap_or("application/octet-stream");
186        let local_var_content_type = super::ContentType::from(local_var_content_type);
187        let local_var_content = local_var_resp.text().await?;
188
189        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
190            match local_var_content_type {
191                ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
192                ContentType::Text => {
193                    return Err(Error::from(serde_json::Error::custom(
194                        "Received `text/plain` content type response that cannot be converted to `models::ProviderOrganizationOrganizationDetailsResponseModelListResponseModel`",
195                    )));
196                }
197                ContentType::Unsupported(local_var_unknown_type) => {
198                    return Err(Error::from(serde_json::Error::custom(format!(
199                        "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::ProviderOrganizationOrganizationDetailsResponseModelListResponseModel`"
200                    ))));
201                }
202            }
203        } else {
204            let local_var_entity: Option<GetError> = serde_json::from_str(&local_var_content).ok();
205            let local_var_error = ResponseContent {
206                status: local_var_status,
207                content: local_var_content,
208                entity: local_var_entity,
209            };
210            Err(Error::ResponseError(local_var_error))
211        }
212    }
213
214    async fn post<'a>(
215        &self,
216        provider_id: uuid::Uuid,
217        provider_organization_create_request_model: Option<
218            models::ProviderOrganizationCreateRequestModel,
219        >,
220    ) -> Result<models::ProviderOrganizationResponseModel, Error<PostError>> {
221        let local_var_configuration = &self.configuration;
222
223        let local_var_client = &local_var_configuration.client;
224
225        let local_var_uri_str = format!(
226            "{}/providers/{providerId}/organizations",
227            local_var_configuration.base_path,
228            providerId = provider_id
229        );
230        let mut local_var_req_builder =
231            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
232
233        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
234        local_var_req_builder =
235            local_var_req_builder.json(&provider_organization_create_request_model);
236
237        let local_var_resp = local_var_req_builder.send().await?;
238
239        let local_var_status = local_var_resp.status();
240        let local_var_content_type = local_var_resp
241            .headers()
242            .get("content-type")
243            .and_then(|v| v.to_str().ok())
244            .unwrap_or("application/octet-stream");
245        let local_var_content_type = super::ContentType::from(local_var_content_type);
246        let local_var_content = local_var_resp.text().await?;
247
248        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
249            match local_var_content_type {
250                ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
251                ContentType::Text => {
252                    return Err(Error::from(serde_json::Error::custom(
253                        "Received `text/plain` content type response that cannot be converted to `models::ProviderOrganizationResponseModel`",
254                    )));
255                }
256                ContentType::Unsupported(local_var_unknown_type) => {
257                    return Err(Error::from(serde_json::Error::custom(format!(
258                        "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::ProviderOrganizationResponseModel`"
259                    ))));
260                }
261            }
262        } else {
263            let local_var_entity: Option<PostError> = serde_json::from_str(&local_var_content).ok();
264            let local_var_error = ResponseContent {
265                status: local_var_status,
266                content: local_var_content,
267                entity: local_var_entity,
268            };
269            Err(Error::ResponseError(local_var_error))
270        }
271    }
272}
273
274/// struct for typed errors of method [`ProviderOrganizationsApi::add`]
275#[derive(Debug, Clone, Serialize, Deserialize)]
276#[serde(untagged)]
277pub enum AddError {
278    UnknownValue(serde_json::Value),
279}
280/// struct for typed errors of method [`ProviderOrganizationsApi::delete`]
281#[derive(Debug, Clone, Serialize, Deserialize)]
282#[serde(untagged)]
283pub enum DeleteError {
284    UnknownValue(serde_json::Value),
285}
286/// struct for typed errors of method [`ProviderOrganizationsApi::get`]
287#[derive(Debug, Clone, Serialize, Deserialize)]
288#[serde(untagged)]
289pub enum GetError {
290    UnknownValue(serde_json::Value),
291}
292/// struct for typed errors of method [`ProviderOrganizationsApi::post`]
293#[derive(Debug, Clone, Serialize, Deserialize)]
294#[serde(untagged)]
295pub enum PostError {
296    UnknownValue(serde_json::Value),
297}