1use std::sync::Arc;
10
11use async_trait::async_trait;
12use reqwest;
13use serde::{Deserialize, Serialize};
14
15use super::{configuration, Error};
16use crate::apis::ResponseContent;
17use crate::models;
18
19#[async_trait]
20pub trait PresetsApi: Send + Sync {
21 async fn delete_preset(
22 &self,
23 params: DeletePresetParams,
24 ) -> Result<models::PresetDeleteSchema, Error<DeletePresetError>>;
25 async fn retrieve_all_presets(&self) -> Result<models::PresetsRetrieveSchema, Error<RetrieveAllPresetsError>>;
26 async fn retrieve_preset(
27 &self,
28 params: RetrievePresetParams,
29 ) -> Result<models::PresetSchema, Error<RetrievePresetError>>;
30 async fn upsert_preset(&self, params: UpsertPresetParams) -> Result<models::PresetSchema, Error<UpsertPresetError>>;
31}
32
33pub struct PresetsApiClient {
34 configuration: Arc<configuration::Configuration>,
35}
36
37impl PresetsApiClient {
38 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
39 Self { configuration }
40 }
41}
42
43#[derive(Clone, Debug)]
45#[cfg_attr(feature = "bon", derive(::bon::Builder))]
46pub struct DeletePresetParams {
47 pub preset_id: String,
49}
50
51#[derive(Clone, Debug)]
53#[cfg_attr(feature = "bon", derive(::bon::Builder))]
54pub struct RetrievePresetParams {
55 pub preset_id: String,
57}
58
59#[derive(Clone, Debug)]
61#[cfg_attr(feature = "bon", derive(::bon::Builder))]
62pub struct UpsertPresetParams {
63 pub preset_id: String,
65 pub preset_upsert_schema: models::PresetUpsertSchema,
67}
68
69#[async_trait]
70impl PresetsApi for PresetsApiClient {
71 async fn delete_preset(
73 &self,
74 params: DeletePresetParams,
75 ) -> Result<models::PresetDeleteSchema, Error<DeletePresetError>> {
76 let DeletePresetParams { preset_id } = params;
77
78 let local_var_configuration = &self.configuration;
79
80 let local_var_client = &local_var_configuration.client;
81
82 let local_var_uri_str = format!(
83 "{}/presets/{presetId}",
84 local_var_configuration.base_path,
85 presetId = crate::apis::urlencode(preset_id)
86 );
87 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
88
89 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
90 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
91 }
92 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
93 let local_var_key = local_var_apikey.key.clone();
94 let local_var_value = match local_var_apikey.prefix {
95 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
96 None => local_var_key,
97 };
98 local_var_req_builder = local_var_req_builder.header("X-TYPESENSE-API-KEY", local_var_value);
99 };
100
101 let local_var_req = local_var_req_builder.build()?;
102 let local_var_resp = local_var_client.execute(local_var_req).await?;
103
104 let local_var_status = local_var_resp.status();
105 let local_var_content = local_var_resp.text().await?;
106
107 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
108 serde_json::from_str(&local_var_content).map_err(Error::from)
109 } else {
110 let local_var_entity: Option<DeletePresetError> = serde_json::from_str(&local_var_content).ok();
111 let local_var_error = ResponseContent {
112 status: local_var_status,
113 content: local_var_content,
114 entity: local_var_entity,
115 };
116 Err(Error::ResponseError(local_var_error))
117 }
118 }
119
120 async fn retrieve_all_presets(&self) -> Result<models::PresetsRetrieveSchema, Error<RetrieveAllPresetsError>> {
122 let local_var_configuration = &self.configuration;
123
124 let local_var_client = &local_var_configuration.client;
125
126 let local_var_uri_str = format!("{}/presets", local_var_configuration.base_path);
127 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
128
129 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
130 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
131 }
132 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
133 let local_var_key = local_var_apikey.key.clone();
134 let local_var_value = match local_var_apikey.prefix {
135 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
136 None => local_var_key,
137 };
138 local_var_req_builder = local_var_req_builder.header("X-TYPESENSE-API-KEY", local_var_value);
139 };
140
141 let local_var_req = local_var_req_builder.build()?;
142 let local_var_resp = local_var_client.execute(local_var_req).await?;
143
144 let local_var_status = local_var_resp.status();
145 let local_var_content = local_var_resp.text().await?;
146
147 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
148 serde_json::from_str(&local_var_content).map_err(Error::from)
149 } else {
150 let local_var_entity: Option<RetrieveAllPresetsError> = serde_json::from_str(&local_var_content).ok();
151 let local_var_error = ResponseContent {
152 status: local_var_status,
153 content: local_var_content,
154 entity: local_var_entity,
155 };
156 Err(Error::ResponseError(local_var_error))
157 }
158 }
159
160 async fn retrieve_preset(
162 &self,
163 params: RetrievePresetParams,
164 ) -> Result<models::PresetSchema, Error<RetrievePresetError>> {
165 let RetrievePresetParams { preset_id } = params;
166
167 let local_var_configuration = &self.configuration;
168
169 let local_var_client = &local_var_configuration.client;
170
171 let local_var_uri_str = format!(
172 "{}/presets/{presetId}",
173 local_var_configuration.base_path,
174 presetId = crate::apis::urlencode(preset_id)
175 );
176 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
177
178 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
179 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
180 }
181 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
182 let local_var_key = local_var_apikey.key.clone();
183 let local_var_value = match local_var_apikey.prefix {
184 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
185 None => local_var_key,
186 };
187 local_var_req_builder = local_var_req_builder.header("X-TYPESENSE-API-KEY", local_var_value);
188 };
189
190 let local_var_req = local_var_req_builder.build()?;
191 let local_var_resp = local_var_client.execute(local_var_req).await?;
192
193 let local_var_status = local_var_resp.status();
194 let local_var_content = local_var_resp.text().await?;
195
196 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
197 serde_json::from_str(&local_var_content).map_err(Error::from)
198 } else {
199 let local_var_entity: Option<RetrievePresetError> = serde_json::from_str(&local_var_content).ok();
200 let local_var_error = ResponseContent {
201 status: local_var_status,
202 content: local_var_content,
203 entity: local_var_entity,
204 };
205 Err(Error::ResponseError(local_var_error))
206 }
207 }
208
209 async fn upsert_preset(&self, params: UpsertPresetParams) -> Result<models::PresetSchema, Error<UpsertPresetError>> {
211 let UpsertPresetParams {
212 preset_id,
213 preset_upsert_schema,
214 } = params;
215
216 let local_var_configuration = &self.configuration;
217
218 let local_var_client = &local_var_configuration.client;
219
220 let local_var_uri_str = format!(
221 "{}/presets/{presetId}",
222 local_var_configuration.base_path,
223 presetId = crate::apis::urlencode(preset_id)
224 );
225 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
226
227 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
228 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
229 }
230 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
231 let local_var_key = local_var_apikey.key.clone();
232 let local_var_value = match local_var_apikey.prefix {
233 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
234 None => local_var_key,
235 };
236 local_var_req_builder = local_var_req_builder.header("X-TYPESENSE-API-KEY", local_var_value);
237 };
238 local_var_req_builder = local_var_req_builder.json(&preset_upsert_schema);
239
240 let local_var_req = local_var_req_builder.build()?;
241 let local_var_resp = local_var_client.execute(local_var_req).await?;
242
243 let local_var_status = local_var_resp.status();
244 let local_var_content = local_var_resp.text().await?;
245
246 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
247 serde_json::from_str(&local_var_content).map_err(Error::from)
248 } else {
249 let local_var_entity: Option<UpsertPresetError> = serde_json::from_str(&local_var_content).ok();
250 let local_var_error = ResponseContent {
251 status: local_var_status,
252 content: local_var_content,
253 entity: local_var_entity,
254 };
255 Err(Error::ResponseError(local_var_error))
256 }
257 }
258}
259
260#[derive(Debug, Clone, Serialize, Deserialize)]
262#[serde(untagged)]
263pub enum DeletePresetError {
264 Status404(models::ApiResponse),
265 UnknownValue(serde_json::Value),
266}
267
268#[derive(Debug, Clone, Serialize, Deserialize)]
270#[serde(untagged)]
271pub enum RetrieveAllPresetsError {
272 UnknownValue(serde_json::Value),
273}
274
275#[derive(Debug, Clone, Serialize, Deserialize)]
277#[serde(untagged)]
278pub enum RetrievePresetError {
279 Status404(models::ApiResponse),
280 UnknownValue(serde_json::Value),
281}
282
283#[derive(Debug, Clone, Serialize, Deserialize)]
285#[serde(untagged)]
286pub enum UpsertPresetError {
287 Status400(models::ApiResponse),
288 UnknownValue(serde_json::Value),
289}