bitwarden_api_api/apis/
access_requests_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 AccessRequestsApi: Send + Sync {
29 async fn activate<'a>(&self, id: uuid::Uuid)
31 -> Result<models::AccessLeaseResponseModel, Error>;
32
33 async fn decide<'a>(
35 &self,
36 id: uuid::Uuid,
37 access_decision_request_model: models::AccessDecisionRequestModel,
38 ) -> Result<models::AccessRequestDetailsResponseModel, Error>;
39
40 async fn get_details<'a>(
42 &self,
43 id: uuid::Uuid,
44 ) -> Result<models::AccessRequestDetailsResponseModel, Error>;
45
46 async fn get_history(
48 &self,
49 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error>;
50
51 async fn get_inbox(
53 &self,
54 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error>;
55
56 async fn get_mine(
58 &self,
59 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error>;
60
61 async fn revoke<'a>(&self, id: uuid::Uuid) -> Result<(), Error>;
63}
64
65pub struct AccessRequestsApiClient {
66 configuration: Arc<configuration::Configuration>,
67}
68
69impl AccessRequestsApiClient {
70 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
71 Self { configuration }
72 }
73}
74
75#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
76#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
77impl AccessRequestsApi for AccessRequestsApiClient {
78 async fn activate<'a>(
79 &self,
80 id: uuid::Uuid,
81 ) -> Result<models::AccessLeaseResponseModel, Error> {
82 let local_var_configuration = &self.configuration;
83
84 let local_var_client = &local_var_configuration.client;
85
86 let local_var_uri_str = format!(
87 "{}/access-requests/{id}/activate",
88 local_var_configuration.base_path,
89 id = id
90 );
91 let mut local_var_req_builder =
92 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
93
94 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
95
96 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
97 }
98
99 async fn decide<'a>(
100 &self,
101 id: uuid::Uuid,
102 access_decision_request_model: models::AccessDecisionRequestModel,
103 ) -> Result<models::AccessRequestDetailsResponseModel, Error> {
104 let local_var_configuration = &self.configuration;
105
106 let local_var_client = &local_var_configuration.client;
107
108 let local_var_uri_str = format!(
109 "{}/access-requests/{id}/decision",
110 local_var_configuration.base_path,
111 id = id
112 );
113 let mut local_var_req_builder =
114 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
115
116 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
117 local_var_req_builder = local_var_req_builder.json(&access_decision_request_model);
118
119 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
120 }
121
122 async fn get_details<'a>(
123 &self,
124 id: uuid::Uuid,
125 ) -> Result<models::AccessRequestDetailsResponseModel, Error> {
126 let local_var_configuration = &self.configuration;
127
128 let local_var_client = &local_var_configuration.client;
129
130 let local_var_uri_str = format!(
131 "{}/access-requests/{id}",
132 local_var_configuration.base_path,
133 id = id
134 );
135 let mut local_var_req_builder =
136 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
137
138 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
139
140 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
141 }
142
143 async fn get_history(
144 &self,
145 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error> {
146 let local_var_configuration = &self.configuration;
147
148 let local_var_client = &local_var_configuration.client;
149
150 let local_var_uri_str = format!(
151 "{}/access-requests/history",
152 local_var_configuration.base_path
153 );
154 let mut local_var_req_builder =
155 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
156
157 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
158
159 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
160 }
161
162 async fn get_inbox(
163 &self,
164 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error> {
165 let local_var_configuration = &self.configuration;
166
167 let local_var_client = &local_var_configuration.client;
168
169 let local_var_uri_str = format!(
170 "{}/access-requests/inbox",
171 local_var_configuration.base_path
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 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
179 }
180
181 async fn get_mine(
182 &self,
183 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error> {
184 let local_var_configuration = &self.configuration;
185
186 let local_var_client = &local_var_configuration.client;
187
188 let local_var_uri_str =
189 format!("{}/access-requests/mine", local_var_configuration.base_path);
190 let mut local_var_req_builder =
191 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
192
193 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
194
195 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
196 }
197
198 async fn revoke<'a>(&self, id: uuid::Uuid) -> Result<(), Error> {
199 let local_var_configuration = &self.configuration;
200
201 let local_var_client = &local_var_configuration.client;
202
203 let local_var_uri_str = format!(
204 "{}/access-requests/{id}/revoke",
205 local_var_configuration.base_path,
206 id = id
207 );
208 let mut local_var_req_builder =
209 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
210
211 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
212
213 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
214 }
215}