bitwarden_api_api/apis/
teams_integration_api.rs1use 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 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 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 async fn get_channels<'a>(
48 &self,
49 organization_id: uuid::Uuid,
50 integration_id: uuid::Uuid,
51 ) -> Result<models::TeamsChannelResponseModelListResponseModel, Error>;
52
53 async fn incoming_post(&self) -> Result<(), Error>;
55
56 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", ¶m_value.to_string())]);
122 }
123 if let Some(ref param_value) = state {
124 local_var_req_builder =
125 local_var_req_builder.query(&[("state", ¶m_value.to_string())]);
126 }
127 if let Some(ref param_value) = error {
128 local_var_req_builder =
129 local_var_req_builder.query(&[("error", ¶m_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}