1use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddProductError {
22 UnknownValue(serde_json::Value),
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum AddProductFollowerError {
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum DeleteProductError {
36 UnknownValue(serde_json::Value),
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum DeleteProductFollowerError {
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum GetProductError {
50 UnknownValue(serde_json::Value),
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum GetProductDealsError {
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum GetProductFilesError {
64 UnknownValue(serde_json::Value),
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum GetProductFollowersError {
71 UnknownValue(serde_json::Value),
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum GetProductUsersError {
78 UnknownValue(serde_json::Value),
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum GetProductsError {
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum SearchProductsError {
92 UnknownValue(serde_json::Value),
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum UpdateProductError {
99 UnknownValue(serde_json::Value),
100}
101
102
103pub async fn add_product(configuration: &configuration::Configuration, add_product_request: Option<crate::models::AddProductRequest>) -> Result<crate::models::GetproductResponse200, Error<AddProductError>> {
105 let local_var_configuration = configuration;
106
107 let local_var_client = &local_var_configuration.client;
108
109 let local_var_uri_str = format!("{}/products", local_var_configuration.base_path);
110 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
111
112 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
113 let local_var_key = local_var_apikey.key.clone();
114 let local_var_value = match local_var_apikey.prefix {
115 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
116 None => local_var_key,
117 };
118 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
119 }
120 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
121 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
122 }
123 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
124 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
125 };
126 local_var_req_builder = local_var_req_builder.json(&add_product_request);
127
128 let local_var_req = local_var_req_builder.build()?;
129 let local_var_resp = local_var_client.execute(local_var_req).await?;
130
131 let local_var_status = local_var_resp.status();
132 let local_var_content = local_var_resp.text().await?;
133
134 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
135 serde_json::from_str(&local_var_content).map_err(Error::from)
136 } else {
137 let local_var_entity: Option<AddProductError> = serde_json::from_str(&local_var_content).ok();
138 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
139 Err(Error::ResponseError(local_var_error))
140 }
141}
142
143pub async fn add_product_follower(configuration: &configuration::Configuration, id: i32, add_product_follower_request: Option<crate::models::AddProductFollowerRequest>) -> Result<crate::models::NewFollowerResponse200, Error<AddProductFollowerError>> {
145 let local_var_configuration = configuration;
146
147 let local_var_client = &local_var_configuration.client;
148
149 let local_var_uri_str = format!("{}/products/{id}/followers", local_var_configuration.base_path, id=id);
150 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
151
152 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
153 let local_var_key = local_var_apikey.key.clone();
154 let local_var_value = match local_var_apikey.prefix {
155 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
156 None => local_var_key,
157 };
158 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
159 }
160 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
161 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
162 }
163 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
164 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
165 };
166 local_var_req_builder = local_var_req_builder.json(&add_product_follower_request);
167
168 let local_var_req = local_var_req_builder.build()?;
169 let local_var_resp = local_var_client.execute(local_var_req).await?;
170
171 let local_var_status = local_var_resp.status();
172 let local_var_content = local_var_resp.text().await?;
173
174 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
175 serde_json::from_str(&local_var_content).map_err(Error::from)
176 } else {
177 let local_var_entity: Option<AddProductFollowerError> = serde_json::from_str(&local_var_content).ok();
178 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
179 Err(Error::ResponseError(local_var_error))
180 }
181}
182
183pub async fn delete_product(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::DeleteProductResponse200, Error<DeleteProductError>> {
185 let local_var_configuration = configuration;
186
187 let local_var_client = &local_var_configuration.client;
188
189 let local_var_uri_str = format!("{}/products/{id}", local_var_configuration.base_path, id=id);
190 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
191
192 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
193 let local_var_key = local_var_apikey.key.clone();
194 let local_var_value = match local_var_apikey.prefix {
195 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
196 None => local_var_key,
197 };
198 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
199 }
200 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
201 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
202 }
203 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
204 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
205 };
206
207 let local_var_req = local_var_req_builder.build()?;
208 let local_var_resp = local_var_client.execute(local_var_req).await?;
209
210 let local_var_status = local_var_resp.status();
211 let local_var_content = local_var_resp.text().await?;
212
213 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
214 serde_json::from_str(&local_var_content).map_err(Error::from)
215 } else {
216 let local_var_entity: Option<DeleteProductError> = serde_json::from_str(&local_var_content).ok();
217 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
218 Err(Error::ResponseError(local_var_error))
219 }
220}
221
222pub async fn delete_product_follower(configuration: &configuration::Configuration, id: i32, follower_id: i32) -> Result<crate::models::DeleteProductFollowerResponse200, Error<DeleteProductFollowerError>> {
224 let local_var_configuration = configuration;
225
226 let local_var_client = &local_var_configuration.client;
227
228 let local_var_uri_str = format!("{}/products/{id}/followers/{follower_id}", local_var_configuration.base_path, id=id, follower_id=follower_id);
229 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
230
231 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
232 let local_var_key = local_var_apikey.key.clone();
233 let local_var_value = match local_var_apikey.prefix {
234 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
235 None => local_var_key,
236 };
237 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
238 }
239 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
240 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
241 }
242 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
243 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
244 };
245
246 let local_var_req = local_var_req_builder.build()?;
247 let local_var_resp = local_var_client.execute(local_var_req).await?;
248
249 let local_var_status = local_var_resp.status();
250 let local_var_content = local_var_resp.text().await?;
251
252 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
253 serde_json::from_str(&local_var_content).map_err(Error::from)
254 } else {
255 let local_var_entity: Option<DeleteProductFollowerError> = serde_json::from_str(&local_var_content).ok();
256 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
257 Err(Error::ResponseError(local_var_error))
258 }
259}
260
261pub async fn get_product(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::GetproductResponse200, Error<GetProductError>> {
263 let local_var_configuration = configuration;
264
265 let local_var_client = &local_var_configuration.client;
266
267 let local_var_uri_str = format!("{}/products/{id}", local_var_configuration.base_path, id=id);
268 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
269
270 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
271 let local_var_key = local_var_apikey.key.clone();
272 let local_var_value = match local_var_apikey.prefix {
273 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
274 None => local_var_key,
275 };
276 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
277 }
278 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
279 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
280 }
281 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
282 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
283 };
284
285 let local_var_req = local_var_req_builder.build()?;
286 let local_var_resp = local_var_client.execute(local_var_req).await?;
287
288 let local_var_status = local_var_resp.status();
289 let local_var_content = local_var_resp.text().await?;
290
291 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
292 serde_json::from_str(&local_var_content).map_err(Error::from)
293 } else {
294 let local_var_entity: Option<GetProductError> = serde_json::from_str(&local_var_content).ok();
295 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
296 Err(Error::ResponseError(local_var_error))
297 }
298}
299
300pub async fn get_product_deals(configuration: &configuration::Configuration, id: i32, start: Option<i32>, limit: Option<i32>, status: Option<&str>) -> Result<crate::models::GetAssociatedDealsResponse200, Error<GetProductDealsError>> {
302 let local_var_configuration = configuration;
303
304 let local_var_client = &local_var_configuration.client;
305
306 let local_var_uri_str = format!("{}/products/{id}/deals", local_var_configuration.base_path, id=id);
307 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
308
309 if let Some(ref local_var_str) = start {
310 local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
311 }
312 if let Some(ref local_var_str) = limit {
313 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
314 }
315 if let Some(ref local_var_str) = status {
316 local_var_req_builder = local_var_req_builder.query(&[("status", &local_var_str.to_string())]);
317 }
318 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
319 let local_var_key = local_var_apikey.key.clone();
320 let local_var_value = match local_var_apikey.prefix {
321 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
322 None => local_var_key,
323 };
324 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
325 }
326 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
327 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
328 }
329 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
330 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
331 };
332
333 let local_var_req = local_var_req_builder.build()?;
334 let local_var_resp = local_var_client.execute(local_var_req).await?;
335
336 let local_var_status = local_var_resp.status();
337 let local_var_content = local_var_resp.text().await?;
338
339 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
340 serde_json::from_str(&local_var_content).map_err(Error::from)
341 } else {
342 let local_var_entity: Option<GetProductDealsError> = serde_json::from_str(&local_var_content).ok();
343 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
344 Err(Error::ResponseError(local_var_error))
345 }
346}
347
348pub async fn get_product_files(configuration: &configuration::Configuration, id: i32, start: Option<i32>, limit: Option<i32>, sort: Option<&str>) -> Result<crate::models::GetAssociatedFilesResponse2001, Error<GetProductFilesError>> {
350 let local_var_configuration = configuration;
351
352 let local_var_client = &local_var_configuration.client;
353
354 let local_var_uri_str = format!("{}/products/{id}/files", local_var_configuration.base_path, id=id);
355 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
356
357 if let Some(ref local_var_str) = start {
358 local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
359 }
360 if let Some(ref local_var_str) = limit {
361 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
362 }
363 if let Some(ref local_var_str) = sort {
364 local_var_req_builder = local_var_req_builder.query(&[("sort", &local_var_str.to_string())]);
365 }
366 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
367 let local_var_key = local_var_apikey.key.clone();
368 let local_var_value = match local_var_apikey.prefix {
369 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
370 None => local_var_key,
371 };
372 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
373 }
374 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
375 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
376 }
377 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
378 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
379 };
380
381 let local_var_req = local_var_req_builder.build()?;
382 let local_var_resp = local_var_client.execute(local_var_req).await?;
383
384 let local_var_status = local_var_resp.status();
385 let local_var_content = local_var_resp.text().await?;
386
387 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
388 serde_json::from_str(&local_var_content).map_err(Error::from)
389 } else {
390 let local_var_entity: Option<GetProductFilesError> = serde_json::from_str(&local_var_content).ok();
391 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
392 Err(Error::ResponseError(local_var_error))
393 }
394}
395
396pub async fn get_product_followers(configuration: &configuration::Configuration, id: i32, start: Option<i32>, limit: Option<i32>) -> Result<crate::models::GetProductFollowersResponseSuccess, Error<GetProductFollowersError>> {
398 let local_var_configuration = configuration;
399
400 let local_var_client = &local_var_configuration.client;
401
402 let local_var_uri_str = format!("{}/products/{id}/followers", local_var_configuration.base_path, id=id);
403 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
404
405 if let Some(ref local_var_str) = start {
406 local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
407 }
408 if let Some(ref local_var_str) = limit {
409 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
410 }
411 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
412 let local_var_key = local_var_apikey.key.clone();
413 let local_var_value = match local_var_apikey.prefix {
414 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
415 None => local_var_key,
416 };
417 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
418 }
419 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
420 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
421 }
422 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
423 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
424 };
425
426 let local_var_req = local_var_req_builder.build()?;
427 let local_var_resp = local_var_client.execute(local_var_req).await?;
428
429 let local_var_status = local_var_resp.status();
430 let local_var_content = local_var_resp.text().await?;
431
432 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
433 serde_json::from_str(&local_var_content).map_err(Error::from)
434 } else {
435 let local_var_entity: Option<GetProductFollowersError> = serde_json::from_str(&local_var_content).ok();
436 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
437 Err(Error::ResponseError(local_var_error))
438 }
439}
440
441pub async fn get_product_users(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::UserIds, Error<GetProductUsersError>> {
443 let local_var_configuration = configuration;
444
445 let local_var_client = &local_var_configuration.client;
446
447 let local_var_uri_str = format!("{}/products/{id}/permittedUsers", local_var_configuration.base_path, id=id);
448 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
449
450 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
451 let local_var_key = local_var_apikey.key.clone();
452 let local_var_value = match local_var_apikey.prefix {
453 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
454 None => local_var_key,
455 };
456 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
457 }
458 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
459 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
460 }
461 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
462 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
463 };
464
465 let local_var_req = local_var_req_builder.build()?;
466 let local_var_resp = local_var_client.execute(local_var_req).await?;
467
468 let local_var_status = local_var_resp.status();
469 let local_var_content = local_var_resp.text().await?;
470
471 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
472 serde_json::from_str(&local_var_content).map_err(Error::from)
473 } else {
474 let local_var_entity: Option<GetProductUsersError> = serde_json::from_str(&local_var_content).ok();
475 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
476 Err(Error::ResponseError(local_var_error))
477 }
478}
479
480pub async fn get_products(configuration: &configuration::Configuration, user_id: Option<i32>, filter_id: Option<i32>, ids: Option<Vec<i32>>, first_char: Option<&str>, get_summary: Option<bool>, start: Option<i32>, limit: Option<i32>) -> Result<crate::models::GetProductsResponse200, Error<GetProductsError>> {
482 let local_var_configuration = configuration;
483
484 let local_var_client = &local_var_configuration.client;
485
486 let local_var_uri_str = format!("{}/products", local_var_configuration.base_path);
487 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
488
489 if let Some(ref local_var_str) = user_id {
490 local_var_req_builder = local_var_req_builder.query(&[("user_id", &local_var_str.to_string())]);
491 }
492 if let Some(ref local_var_str) = filter_id {
493 local_var_req_builder = local_var_req_builder.query(&[("filter_id", &local_var_str.to_string())]);
494 }
495 if let Some(ref local_var_str) = ids {
496 local_var_req_builder = match "multi" {
497 "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("ids".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
498 _ => local_var_req_builder.query(&[("ids", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
499 };
500 }
501 if let Some(ref local_var_str) = first_char {
502 local_var_req_builder = local_var_req_builder.query(&[("first_char", &local_var_str.to_string())]);
503 }
504 if let Some(ref local_var_str) = get_summary {
505 local_var_req_builder = local_var_req_builder.query(&[("get_summary", &local_var_str.to_string())]);
506 }
507 if let Some(ref local_var_str) = start {
508 local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
509 }
510 if let Some(ref local_var_str) = limit {
511 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
512 }
513 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
514 let local_var_key = local_var_apikey.key.clone();
515 let local_var_value = match local_var_apikey.prefix {
516 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
517 None => local_var_key,
518 };
519 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
520 }
521 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
522 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
523 }
524 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
525 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
526 };
527
528 let local_var_req = local_var_req_builder.build()?;
529 let local_var_resp = local_var_client.execute(local_var_req).await?;
530
531 let local_var_status = local_var_resp.status();
532 let local_var_content = local_var_resp.text().await?;
533
534 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
535 serde_json::from_str(&local_var_content).map_err(Error::from)
536 } else {
537 let local_var_entity: Option<GetProductsError> = serde_json::from_str(&local_var_content).ok();
538 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
539 Err(Error::ResponseError(local_var_error))
540 }
541}
542
543pub async fn search_products(configuration: &configuration::Configuration, term: &str, fields: Option<&str>, exact_match: Option<bool>, include_fields: Option<&str>, start: Option<i32>, limit: Option<i32>) -> Result<crate::models::SearchProductsResponse200, Error<SearchProductsError>> {
545 let local_var_configuration = configuration;
546
547 let local_var_client = &local_var_configuration.client;
548
549 let local_var_uri_str = format!("{}/products/search", local_var_configuration.base_path);
550 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
551
552 local_var_req_builder = local_var_req_builder.query(&[("term", &term.to_string())]);
553 if let Some(ref local_var_str) = fields {
554 local_var_req_builder = local_var_req_builder.query(&[("fields", &local_var_str.to_string())]);
555 }
556 if let Some(ref local_var_str) = exact_match {
557 local_var_req_builder = local_var_req_builder.query(&[("exact_match", &local_var_str.to_string())]);
558 }
559 if let Some(ref local_var_str) = include_fields {
560 local_var_req_builder = local_var_req_builder.query(&[("include_fields", &local_var_str.to_string())]);
561 }
562 if let Some(ref local_var_str) = start {
563 local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
564 }
565 if let Some(ref local_var_str) = limit {
566 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
567 }
568 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
569 let local_var_key = local_var_apikey.key.clone();
570 let local_var_value = match local_var_apikey.prefix {
571 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
572 None => local_var_key,
573 };
574 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
575 }
576 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
577 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
578 }
579 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
580 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
581 };
582
583 let local_var_req = local_var_req_builder.build()?;
584 let local_var_resp = local_var_client.execute(local_var_req).await?;
585
586 let local_var_status = local_var_resp.status();
587 let local_var_content = local_var_resp.text().await?;
588
589 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
590 serde_json::from_str(&local_var_content).map_err(Error::from)
591 } else {
592 let local_var_entity: Option<SearchProductsError> = serde_json::from_str(&local_var_content).ok();
593 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
594 Err(Error::ResponseError(local_var_error))
595 }
596}
597
598pub async fn update_product(configuration: &configuration::Configuration, id: i32, add_product_request1: Option<crate::models::AddProductRequest1>) -> Result<crate::models::UpdateProductResponse200, Error<UpdateProductError>> {
600 let local_var_configuration = configuration;
601
602 let local_var_client = &local_var_configuration.client;
603
604 let local_var_uri_str = format!("{}/products/{id}", local_var_configuration.base_path, id=id);
605 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
606
607 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
608 let local_var_key = local_var_apikey.key.clone();
609 let local_var_value = match local_var_apikey.prefix {
610 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
611 None => local_var_key,
612 };
613 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
614 }
615 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
616 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
617 }
618 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
619 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
620 };
621 local_var_req_builder = local_var_req_builder.json(&add_product_request1);
622
623 let local_var_req = local_var_req_builder.build()?;
624 let local_var_resp = local_var_client.execute(local_var_req).await?;
625
626 let local_var_status = local_var_resp.status();
627 let local_var_content = local_var_resp.text().await?;
628
629 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
630 serde_json::from_str(&local_var_content).map_err(Error::from)
631 } else {
632 let local_var_entity: Option<UpdateProductError> = serde_json::from_str(&local_var_content).ok();
633 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
634 Err(Error::ResponseError(local_var_error))
635 }
636}
637