bitwarden_api_identity/apis/
accounts_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 AccountsApi: Send + Sync {
29 async fn get_web_authn_login_assertion_options(
31 &self,
32 ) -> Result<models::WebAuthnLoginAssertionOptionsResponseModel, Error>;
33
34 async fn post_password_prelogin<'a>(
36 &self,
37 password_prelogin_request_model: Option<models::PasswordPreloginRequestModel>,
38 ) -> Result<models::PasswordPreloginResponseModel, Error>;
39
40 async fn post_register_finish<'a>(
42 &self,
43 register_finish_request_model: Option<models::RegisterFinishRequestModel>,
44 ) -> Result<models::RegisterFinishResponseModel, Error>;
45
46 async fn post_register_send_verification_email<'a>(
48 &self,
49 register_send_verification_email_request_model: Option<
50 models::RegisterSendVerificationEmailRequestModel,
51 >,
52 ) -> Result<(), Error>;
53
54 async fn post_register_verification_email_clicked<'a>(
56 &self,
57 register_verification_email_clicked_request_model: Option<
58 models::RegisterVerificationEmailClickedRequestModel,
59 >,
60 ) -> Result<(), Error>;
61
62 async fn post_trial_initiation_send_verification_email<'a>(
64 &self,
65 trial_send_verification_email_request_model: Option<
66 models::TrialSendVerificationEmailRequestModel,
67 >,
68 ) -> Result<(), Error>;
69}
70
71pub struct AccountsApiClient {
72 configuration: Arc<configuration::Configuration>,
73}
74
75impl AccountsApiClient {
76 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
77 Self { configuration }
78 }
79}
80
81#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
82#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
83impl AccountsApi for AccountsApiClient {
84 async fn get_web_authn_login_assertion_options(
85 &self,
86 ) -> Result<models::WebAuthnLoginAssertionOptionsResponseModel, Error> {
87 let local_var_configuration = &self.configuration;
88
89 let local_var_client = &local_var_configuration.client;
90
91 let local_var_uri_str = format!(
92 "{}/accounts/webauthn/assertion-options",
93 local_var_configuration.base_path
94 );
95 let mut local_var_req_builder =
96 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
97
98 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
99 }
100
101 async fn post_password_prelogin<'a>(
102 &self,
103 password_prelogin_request_model: Option<models::PasswordPreloginRequestModel>,
104 ) -> Result<models::PasswordPreloginResponseModel, Error> {
105 let local_var_configuration = &self.configuration;
106
107 let local_var_client = &local_var_configuration.client;
108
109 let local_var_uri_str = format!(
110 "{}/accounts/prelogin/password",
111 local_var_configuration.base_path
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.json(&password_prelogin_request_model);
117
118 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
119 }
120
121 async fn post_register_finish<'a>(
122 &self,
123 register_finish_request_model: Option<models::RegisterFinishRequestModel>,
124 ) -> Result<models::RegisterFinishResponseModel, Error> {
125 let local_var_configuration = &self.configuration;
126
127 let local_var_client = &local_var_configuration.client;
128
129 let local_var_uri_str = format!(
130 "{}/accounts/register/finish",
131 local_var_configuration.base_path
132 );
133 let mut local_var_req_builder =
134 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
135
136 local_var_req_builder = local_var_req_builder.json(®ister_finish_request_model);
137
138 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
139 }
140
141 async fn post_register_send_verification_email<'a>(
142 &self,
143 register_send_verification_email_request_model: Option<
144 models::RegisterSendVerificationEmailRequestModel,
145 >,
146 ) -> Result<(), Error> {
147 let local_var_configuration = &self.configuration;
148
149 let local_var_client = &local_var_configuration.client;
150
151 let local_var_uri_str = format!(
152 "{}/accounts/register/send-verification-email",
153 local_var_configuration.base_path
154 );
155 let mut local_var_req_builder =
156 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
157
158 local_var_req_builder =
159 local_var_req_builder.json(®ister_send_verification_email_request_model);
160
161 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
162 }
163
164 async fn post_register_verification_email_clicked<'a>(
165 &self,
166 register_verification_email_clicked_request_model: Option<
167 models::RegisterVerificationEmailClickedRequestModel,
168 >,
169 ) -> Result<(), Error> {
170 let local_var_configuration = &self.configuration;
171
172 let local_var_client = &local_var_configuration.client;
173
174 let local_var_uri_str = format!(
175 "{}/accounts/register/verification-email-clicked",
176 local_var_configuration.base_path
177 );
178 let mut local_var_req_builder =
179 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
180
181 local_var_req_builder =
182 local_var_req_builder.json(®ister_verification_email_clicked_request_model);
183
184 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
185 }
186
187 async fn post_trial_initiation_send_verification_email<'a>(
188 &self,
189 trial_send_verification_email_request_model: Option<
190 models::TrialSendVerificationEmailRequestModel,
191 >,
192 ) -> Result<(), Error> {
193 let local_var_configuration = &self.configuration;
194
195 let local_var_client = &local_var_configuration.client;
196
197 let local_var_uri_str = format!(
198 "{}/accounts/trial/send-verification-email",
199 local_var_configuration.base_path
200 );
201 let mut local_var_req_builder =
202 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
203
204 local_var_req_builder =
205 local_var_req_builder.json(&trial_send_verification_email_request_model);
206
207 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
208 }
209}