typesense_rs/apis/
presets_api.rs

1// Typesense API
2//
3// An open source search engine for building delightful search experiences.
4//
5// The version of the OpenAPI document: 27.0
6//
7// Generated by: https://openapi-generator.tech
8
9use 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/// struct for passing parameters to the method [`delete_preset`]
44#[derive(Clone, Debug)]
45#[cfg_attr(feature = "bon", derive(::bon::Builder))]
46pub struct DeletePresetParams {
47	/// The ID of the preset to delete.
48	pub preset_id: String,
49}
50
51/// struct for passing parameters to the method [`retrieve_preset`]
52#[derive(Clone, Debug)]
53#[cfg_attr(feature = "bon", derive(::bon::Builder))]
54pub struct RetrievePresetParams {
55	/// The ID of the preset to retrieve.
56	pub preset_id: String,
57}
58
59/// struct for passing parameters to the method [`upsert_preset`]
60#[derive(Clone, Debug)]
61#[cfg_attr(feature = "bon", derive(::bon::Builder))]
62pub struct UpsertPresetParams {
63	/// The name of the preset set to upsert.
64	pub preset_id: String,
65	/// The stopwords set to upsert.
66	pub preset_upsert_schema: models::PresetUpsertSchema,
67}
68
69#[async_trait]
70impl PresetsApi for PresetsApiClient {
71	/// Permanently deletes a preset, given it's name.
72	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	/// Retrieve the details of all presets
121	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	/// Retrieve the details of a preset, given it's name.
161	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	/// Create or update an existing preset.
210	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/// struct for typed errors of method [`delete_preset`]
261#[derive(Debug, Clone, Serialize, Deserialize)]
262#[serde(untagged)]
263pub enum DeletePresetError {
264	Status404(models::ApiResponse),
265	UnknownValue(serde_json::Value),
266}
267
268/// struct for typed errors of method [`retrieve_all_presets`]
269#[derive(Debug, Clone, Serialize, Deserialize)]
270#[serde(untagged)]
271pub enum RetrieveAllPresetsError {
272	UnknownValue(serde_json::Value),
273}
274
275/// struct for typed errors of method [`retrieve_preset`]
276#[derive(Debug, Clone, Serialize, Deserialize)]
277#[serde(untagged)]
278pub enum RetrievePresetError {
279	Status404(models::ApiResponse),
280	UnknownValue(serde_json::Value),
281}
282
283/// struct for typed errors of method [`upsert_preset`]
284#[derive(Debug, Clone, Serialize, Deserialize)]
285#[serde(untagged)]
286pub enum UpsertPresetError {
287	Status400(models::ApiResponse),
288	UnknownValue(serde_json::Value),
289}