Skip to main content

bitwarden_api_api/apis/
teams_integration_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 TeamsIntegrationApi: Send + Sync {
29    /// POST /organizations/{organizationId}/integrations/teams/complete
30    async fn complete<'a>(
31        &self,
32        organization_id: uuid::Uuid,
33        organization_integration_o_auth_complete_request_model: Option<
34            models::OrganizationIntegrationOAuthCompleteRequestModel,
35        >,
36    ) -> Result<models::OrganizationIntegrationOAuthCompleteResponseModel, Error>;
37
38    /// GET /organizations/integrations/teams/create
39    async fn create<'a>(
40        &self,
41        code: Option<&'a str>,
42        state: Option<&'a str>,
43        error: Option<&'a str>,
44    ) -> Result<(), Error>;
45
46    /// GET /organizations/{organizationId}/integrations/{integrationId}/teams/channels
47    async fn get_channels<'a>(
48        &self,
49        organization_id: uuid::Uuid,
50        integration_id: uuid::Uuid,
51    ) -> Result<models::TeamsChannelResponseModelListResponseModel, Error>;
52
53    /// POST /organizations/integrations/teams/incoming
54    async fn incoming_post(&self) -> Result<(), Error>;
55
56    /// GET /organizations/{organizationId}/integrations/teams/redirect
57    async fn redirect<'a>(
58        &self,
59        organization_id: uuid::Uuid,
60    ) -> Result<models::OrganizationIntegrationOAuthRedirectResponseModel, Error>;
61}
62
63pub struct TeamsIntegrationApiClient {
64    configuration: Arc<configuration::Configuration>,
65}
66
67impl TeamsIntegrationApiClient {
68    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
69        Self { configuration }
70    }
71}
72
73#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
74#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
75impl TeamsIntegrationApi for TeamsIntegrationApiClient {
76    async fn complete<'a>(
77        &self,
78        organization_id: uuid::Uuid,
79        organization_integration_o_auth_complete_request_model: Option<
80            models::OrganizationIntegrationOAuthCompleteRequestModel,
81        >,
82    ) -> Result<models::OrganizationIntegrationOAuthCompleteResponseModel, Error> {
83        let local_var_configuration = &self.configuration;
84
85        let local_var_client = &local_var_configuration.client;
86
87        let local_var_uri_str = format!(
88            "{}/organizations/{organizationId}/integrations/teams/complete",
89            local_var_configuration.base_path,
90            organizationId = organization_id
91        );
92        let mut local_var_req_builder =
93            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
94
95        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
96        local_var_req_builder =
97            local_var_req_builder.json(&organization_integration_o_auth_complete_request_model);
98
99        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
100    }
101
102    async fn create<'a>(
103        &self,
104        code: Option<&'a str>,
105        state: Option<&'a str>,
106        error: Option<&'a str>,
107    ) -> Result<(), Error> {
108        let local_var_configuration = &self.configuration;
109
110        let local_var_client = &local_var_configuration.client;
111
112        let local_var_uri_str = format!(
113            "{}/organizations/integrations/teams/create",
114            local_var_configuration.base_path
115        );
116        let mut local_var_req_builder =
117            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
118
119        if let Some(ref param_value) = code {
120            local_var_req_builder =
121                local_var_req_builder.query(&[("code", &param_value.to_string())]);
122        }
123        if let Some(ref param_value) = state {
124            local_var_req_builder =
125                local_var_req_builder.query(&[("state", &param_value.to_string())]);
126        }
127        if let Some(ref param_value) = error {
128            local_var_req_builder =
129                local_var_req_builder.query(&[("error", &param_value.to_string())]);
130        }
131        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
132
133        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
134    }
135
136    async fn get_channels<'a>(
137        &self,
138        organization_id: uuid::Uuid,
139        integration_id: uuid::Uuid,
140    ) -> Result<models::TeamsChannelResponseModelListResponseModel, Error> {
141        let local_var_configuration = &self.configuration;
142
143        let local_var_client = &local_var_configuration.client;
144
145        let local_var_uri_str = format!(
146            "{}/organizations/{organizationId}/integrations/{integrationId}/teams/channels",
147            local_var_configuration.base_path,
148            organizationId = organization_id,
149            integrationId = integration_id
150        );
151        let mut local_var_req_builder =
152            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
153
154        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
155
156        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
157    }
158
159    async fn incoming_post(&self) -> Result<(), Error> {
160        let local_var_configuration = &self.configuration;
161
162        let local_var_client = &local_var_configuration.client;
163
164        let local_var_uri_str = format!(
165            "{}/organizations/integrations/teams/incoming",
166            local_var_configuration.base_path
167        );
168        let mut local_var_req_builder =
169            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
170
171        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
172
173        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
174    }
175
176    async fn redirect<'a>(
177        &self,
178        organization_id: uuid::Uuid,
179    ) -> Result<models::OrganizationIntegrationOAuthRedirectResponseModel, Error> {
180        let local_var_configuration = &self.configuration;
181
182        let local_var_client = &local_var_configuration.client;
183
184        let local_var_uri_str = format!(
185            "{}/organizations/{organizationId}/integrations/teams/redirect",
186            local_var_configuration.base_path,
187            organizationId = organization_id
188        );
189        let mut local_var_req_builder =
190            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
191
192        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
193
194        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
195    }
196}