1use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddProductFieldError {
22 UnknownValue(serde_json::Value),
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum DeleteProductFieldError {
29 Status410(crate::models::FailResponse),
30 UnknownValue(serde_json::Value),
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(untagged)]
36pub enum DeleteProductFieldsError {
37 UnknownValue(serde_json::Value),
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(untagged)]
43pub enum GetProductFieldError {
44 Status410(crate::models::FailResponse),
45 UnknownValue(serde_json::Value),
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize)]
50#[serde(untagged)]
51pub enum GetProductFieldsError {
52 UnknownValue(serde_json::Value),
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize)]
57#[serde(untagged)]
58pub enum UpdateProductFieldError {
59 UnknownValue(serde_json::Value),
60}
61
62
63pub async fn add_product_field(configuration: &configuration::Configuration, add_product_field_request: Option<crate::models::AddProductFieldRequest>) -> Result<crate::models::GetProductFieldResponse200, Error<AddProductFieldError>> {
65 let local_var_configuration = configuration;
66
67 let local_var_client = &local_var_configuration.client;
68
69 let local_var_uri_str = format!("{}/productFields", local_var_configuration.base_path);
70 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
71
72 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
73 let local_var_key = local_var_apikey.key.clone();
74 let local_var_value = match local_var_apikey.prefix {
75 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
76 None => local_var_key,
77 };
78 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
79 }
80 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
81 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
82 }
83 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
84 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
85 };
86 local_var_req_builder = local_var_req_builder.json(&add_product_field_request);
87
88 let local_var_req = local_var_req_builder.build()?;
89 let local_var_resp = local_var_client.execute(local_var_req).await?;
90
91 let local_var_status = local_var_resp.status();
92 let local_var_content = local_var_resp.text().await?;
93
94 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
95 serde_json::from_str(&local_var_content).map_err(Error::from)
96 } else {
97 let local_var_entity: Option<AddProductFieldError> = serde_json::from_str(&local_var_content).ok();
98 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
99 Err(Error::ResponseError(local_var_error))
100 }
101}
102
103pub async fn delete_product_field(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::DeleteProductFieldResponse200, Error<DeleteProductFieldError>> {
105 let local_var_configuration = configuration;
106
107 let local_var_client = &local_var_configuration.client;
108
109 let local_var_uri_str = format!("{}/productFields/{id}", local_var_configuration.base_path, id=id);
110 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, 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
127 let local_var_req = local_var_req_builder.build()?;
128 let local_var_resp = local_var_client.execute(local_var_req).await?;
129
130 let local_var_status = local_var_resp.status();
131 let local_var_content = local_var_resp.text().await?;
132
133 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
134 serde_json::from_str(&local_var_content).map_err(Error::from)
135 } else {
136 let local_var_entity: Option<DeleteProductFieldError> = serde_json::from_str(&local_var_content).ok();
137 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
138 Err(Error::ResponseError(local_var_error))
139 }
140}
141
142pub async fn delete_product_fields(configuration: &configuration::Configuration, ids: &str) -> Result<crate::models::DeleteProductFieldsResponse200, Error<DeleteProductFieldsError>> {
144 let local_var_configuration = configuration;
145
146 let local_var_client = &local_var_configuration.client;
147
148 let local_var_uri_str = format!("{}/productFields", local_var_configuration.base_path);
149 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
150
151 local_var_req_builder = local_var_req_builder.query(&[("ids", &ids.to_string())]);
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
167 let local_var_req = local_var_req_builder.build()?;
168 let local_var_resp = local_var_client.execute(local_var_req).await?;
169
170 let local_var_status = local_var_resp.status();
171 let local_var_content = local_var_resp.text().await?;
172
173 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
174 serde_json::from_str(&local_var_content).map_err(Error::from)
175 } else {
176 let local_var_entity: Option<DeleteProductFieldsError> = serde_json::from_str(&local_var_content).ok();
177 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
178 Err(Error::ResponseError(local_var_error))
179 }
180}
181
182pub async fn get_product_field(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::GetProductFieldResponse200, Error<GetProductFieldError>> {
184 let local_var_configuration = configuration;
185
186 let local_var_client = &local_var_configuration.client;
187
188 let local_var_uri_str = format!("{}/productFields/{id}", local_var_configuration.base_path, id=id);
189 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
190
191 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
192 let local_var_key = local_var_apikey.key.clone();
193 let local_var_value = match local_var_apikey.prefix {
194 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
195 None => local_var_key,
196 };
197 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
198 }
199 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
200 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
201 }
202 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
203 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
204 };
205
206 let local_var_req = local_var_req_builder.build()?;
207 let local_var_resp = local_var_client.execute(local_var_req).await?;
208
209 let local_var_status = local_var_resp.status();
210 let local_var_content = local_var_resp.text().await?;
211
212 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
213 serde_json::from_str(&local_var_content).map_err(Error::from)
214 } else {
215 let local_var_entity: Option<GetProductFieldError> = serde_json::from_str(&local_var_content).ok();
216 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
217 Err(Error::ResponseError(local_var_error))
218 }
219}
220
221pub async fn get_product_fields(configuration: &configuration::Configuration, start: Option<i32>, limit: Option<i32>) -> Result<crate::models::GetProductFieldsResponse200, Error<GetProductFieldsError>> {
223 let local_var_configuration = configuration;
224
225 let local_var_client = &local_var_configuration.client;
226
227 let local_var_uri_str = format!("{}/productFields", local_var_configuration.base_path);
228 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
229
230 if let Some(ref local_var_str) = start {
231 local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
232 }
233 if let Some(ref local_var_str) = limit {
234 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
235 }
236 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
237 let local_var_key = local_var_apikey.key.clone();
238 let local_var_value = match local_var_apikey.prefix {
239 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
240 None => local_var_key,
241 };
242 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
243 }
244 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
245 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
246 }
247 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
248 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
249 };
250
251 let local_var_req = local_var_req_builder.build()?;
252 let local_var_resp = local_var_client.execute(local_var_req).await?;
253
254 let local_var_status = local_var_resp.status();
255 let local_var_content = local_var_resp.text().await?;
256
257 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
258 serde_json::from_str(&local_var_content).map_err(Error::from)
259 } else {
260 let local_var_entity: Option<GetProductFieldsError> = serde_json::from_str(&local_var_content).ok();
261 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
262 Err(Error::ResponseError(local_var_error))
263 }
264}
265
266pub async fn update_product_field(configuration: &configuration::Configuration, id: i32, update_product_field_response200: Option<crate::models::UpdateProductFieldResponse200>) -> Result<crate::models::GetProductFieldResponse200, Error<UpdateProductFieldError>> {
268 let local_var_configuration = configuration;
269
270 let local_var_client = &local_var_configuration.client;
271
272 let local_var_uri_str = format!("{}/productFields/{id}", local_var_configuration.base_path, id=id);
273 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
274
275 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
276 let local_var_key = local_var_apikey.key.clone();
277 let local_var_value = match local_var_apikey.prefix {
278 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
279 None => local_var_key,
280 };
281 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
282 }
283 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
284 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
285 }
286 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
287 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
288 };
289 local_var_req_builder = local_var_req_builder.json(&update_product_field_response200);
290
291 let local_var_req = local_var_req_builder.build()?;
292 let local_var_resp = local_var_client.execute(local_var_req).await?;
293
294 let local_var_status = local_var_resp.status();
295 let local_var_content = local_var_resp.text().await?;
296
297 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
298 serde_json::from_str(&local_var_content).map_err(Error::from)
299 } else {
300 let local_var_entity: Option<UpdateProductFieldError> = serde_json::from_str(&local_var_content).ok();
301 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
302 Err(Error::ResponseError(local_var_error))
303 }
304}
305