Skip to main content

pipedrive_rs/apis/
product_fields_api.rs

1/*
2 * Pipedrive API v1
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.0.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`add_product_field`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddProductFieldError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`delete_product_field`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum DeleteProductFieldError {
29    Status410(crate::models::FailResponse),
30    UnknownValue(serde_json::Value),
31}
32
33/// struct for typed errors of method [`delete_product_fields`]
34#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(untagged)]
36pub enum DeleteProductFieldsError {
37    UnknownValue(serde_json::Value),
38}
39
40/// struct for typed errors of method [`get_product_field`]
41#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(untagged)]
43pub enum GetProductFieldError {
44    Status410(crate::models::FailResponse),
45    UnknownValue(serde_json::Value),
46}
47
48/// struct for typed errors of method [`get_product_fields`]
49#[derive(Debug, Clone, Serialize, Deserialize)]
50#[serde(untagged)]
51pub enum GetProductFieldsError {
52    UnknownValue(serde_json::Value),
53}
54
55/// struct for typed errors of method [`update_product_field`]
56#[derive(Debug, Clone, Serialize, Deserialize)]
57#[serde(untagged)]
58pub enum UpdateProductFieldError {
59    UnknownValue(serde_json::Value),
60}
61
62
63/// Adds a new product field. For more information, see the tutorial for <a href=\"https://pipedrive.readme.io/docs/adding-a-new-custom-field\" target=\"_blank\" rel=\"noopener noreferrer\">adding a new custom field</a>.
64pub 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
103/// Marks a product field as deleted. For more information, see the tutorial for <a href=\"https://pipedrive.readme.io/docs/deleting-a-custom-field\" target=\"_blank\" rel=\"noopener noreferrer\">deleting a custom field</a>.
104pub 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
142/// Marks multiple fields as deleted.
143pub 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
182/// Returns data about a specific product field.
183pub 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
221/// Returns data about all product fields.
222pub 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
266/// Updates a product field. For more information, see the tutorial for <a href=\" https://pipedrive.readme.io/docs/updating-custom-field-value \" target=\"_blank\" rel=\"noopener noreferrer\">updating custom fields' values</a>.
267pub 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