bitwarden_api_api/apis/
folders_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 FoldersApi: Send + Sync {
29 async fn delete<'a>(&self, id: &'a str) -> Result<(), Error>;
31
32 async fn delete_all(&self) -> Result<(), Error>;
34
35 async fn delete_many<'a>(
37 &self,
38 folder_bulk_delete_request_model: Option<models::FolderBulkDeleteRequestModel>,
39 ) -> Result<(), Error>;
40
41 async fn get<'a>(&self, id: &'a str) -> Result<models::FolderResponseModel, Error>;
43
44 async fn get_all(&self) -> Result<models::FolderResponseModelListResponseModel, Error>;
46
47 async fn post<'a>(
49 &self,
50 folder_request_model: Option<models::FolderRequestModel>,
51 ) -> Result<models::FolderResponseModel, Error>;
52
53 async fn put<'a>(
55 &self,
56 id: &'a str,
57 folder_request_model: Option<models::FolderRequestModel>,
58 ) -> Result<models::FolderResponseModel, Error>;
59}
60
61pub struct FoldersApiClient {
62 configuration: Arc<configuration::Configuration>,
63}
64
65impl FoldersApiClient {
66 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
67 Self { configuration }
68 }
69}
70
71#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
72#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
73impl FoldersApi for FoldersApiClient {
74 async fn delete<'a>(&self, id: &'a str) -> Result<(), Error> {
75 let local_var_configuration = &self.configuration;
76
77 let local_var_client = &local_var_configuration.client;
78
79 let local_var_uri_str = format!(
80 "{}/folders/{id}",
81 local_var_configuration.base_path,
82 id = crate::apis::urlencode(id)
83 );
84 let mut local_var_req_builder =
85 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
86
87 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
88
89 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
90 }
91
92 async fn delete_all(&self) -> Result<(), Error> {
93 let local_var_configuration = &self.configuration;
94
95 let local_var_client = &local_var_configuration.client;
96
97 let local_var_uri_str = format!("{}/folders/all", local_var_configuration.base_path);
98 let mut local_var_req_builder =
99 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
100
101 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
102
103 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
104 }
105
106 async fn delete_many<'a>(
107 &self,
108 folder_bulk_delete_request_model: Option<models::FolderBulkDeleteRequestModel>,
109 ) -> Result<(), Error> {
110 let local_var_configuration = &self.configuration;
111
112 let local_var_client = &local_var_configuration.client;
113
114 let local_var_uri_str = format!("{}/folders", local_var_configuration.base_path);
115 let mut local_var_req_builder =
116 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
117
118 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
119 local_var_req_builder = local_var_req_builder.json(&folder_bulk_delete_request_model);
120
121 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
122 }
123
124 async fn get<'a>(&self, id: &'a str) -> Result<models::FolderResponseModel, 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 "{}/folders/{id}",
131 local_var_configuration.base_path,
132 id = crate::apis::urlencode(id)
133 );
134 let mut local_var_req_builder =
135 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
136
137 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
138
139 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
140 }
141
142 async fn get_all(&self) -> Result<models::FolderResponseModelListResponseModel, Error> {
143 let local_var_configuration = &self.configuration;
144
145 let local_var_client = &local_var_configuration.client;
146
147 let local_var_uri_str = format!("{}/folders", local_var_configuration.base_path);
148 let mut local_var_req_builder =
149 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
150
151 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
152
153 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
154 }
155
156 async fn post<'a>(
157 &self,
158 folder_request_model: Option<models::FolderRequestModel>,
159 ) -> Result<models::FolderResponseModel, 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!("{}/folders", local_var_configuration.base_path);
165 let mut local_var_req_builder =
166 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
167
168 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
169 local_var_req_builder = local_var_req_builder.json(&folder_request_model);
170
171 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
172 }
173
174 async fn put<'a>(
175 &self,
176 id: &'a str,
177 folder_request_model: Option<models::FolderRequestModel>,
178 ) -> Result<models::FolderResponseModel, Error> {
179 let local_var_configuration = &self.configuration;
180
181 let local_var_client = &local_var_configuration.client;
182
183 let local_var_uri_str = format!(
184 "{}/folders/{id}",
185 local_var_configuration.base_path,
186 id = crate::apis::urlencode(id)
187 );
188 let mut local_var_req_builder =
189 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
190
191 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
192 local_var_req_builder = local_var_req_builder.json(&folder_request_model);
193
194 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
195 }
196}