pipedrive_rs/apis/
pipelines_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_pipeline`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddPipelineError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`delete_pipeline`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum DeletePipelineError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`get_pipeline`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum GetPipelineError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`get_pipeline_conversion_statistics`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum GetPipelineConversionStatisticsError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`get_pipeline_deals`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum GetPipelineDealsError {
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method [`get_pipeline_movement_statistics`]
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum GetPipelineMovementStatisticsError {
57    UnknownValue(serde_json::Value),
58}
59
60/// struct for typed errors of method [`get_pipelines`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum GetPipelinesError {
64    UnknownValue(serde_json::Value),
65}
66
67/// struct for typed errors of method [`update_pipeline`]
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum UpdatePipelineError {
71    UnknownValue(serde_json::Value),
72}
73
74
75/// Adds a new pipeline.
76pub async fn add_pipeline(configuration: &configuration::Configuration, pipeline_request: Option<crate::models::PipelineRequest>) -> Result<crate::models::AddPipelineResponse200, Error<AddPipelineError>> {
77    let local_var_configuration = configuration;
78
79    let local_var_client = &local_var_configuration.client;
80
81    let local_var_uri_str = format!("{}/pipelines", local_var_configuration.base_path);
82    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
83
84    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
85        let local_var_key = local_var_apikey.key.clone();
86        let local_var_value = match local_var_apikey.prefix {
87            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
88            None => local_var_key,
89        };
90        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
91    }
92    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
93        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
94    }
95    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
96        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
97    };
98    local_var_req_builder = local_var_req_builder.json(&pipeline_request);
99
100    let local_var_req = local_var_req_builder.build()?;
101    let local_var_resp = local_var_client.execute(local_var_req).await?;
102
103    let local_var_status = local_var_resp.status();
104    let local_var_content = local_var_resp.text().await?;
105
106    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
107        serde_json::from_str(&local_var_content).map_err(Error::from)
108    } else {
109        let local_var_entity: Option<AddPipelineError> = serde_json::from_str(&local_var_content).ok();
110        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
111        Err(Error::ResponseError(local_var_error))
112    }
113}
114
115/// Marks a pipeline as deleted.
116pub async fn delete_pipeline(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::DeletePipelineResponse200, Error<DeletePipelineError>> {
117    let local_var_configuration = configuration;
118
119    let local_var_client = &local_var_configuration.client;
120
121    let local_var_uri_str = format!("{}/pipelines/{id}", local_var_configuration.base_path, id=id);
122    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
123
124    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
125        let local_var_key = local_var_apikey.key.clone();
126        let local_var_value = match local_var_apikey.prefix {
127            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
128            None => local_var_key,
129        };
130        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
131    }
132    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
133        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
134    }
135    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
136        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
137    };
138
139    let local_var_req = local_var_req_builder.build()?;
140    let local_var_resp = local_var_client.execute(local_var_req).await?;
141
142    let local_var_status = local_var_resp.status();
143    let local_var_content = local_var_resp.text().await?;
144
145    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
146        serde_json::from_str(&local_var_content).map_err(Error::from)
147    } else {
148        let local_var_entity: Option<DeletePipelineError> = serde_json::from_str(&local_var_content).ok();
149        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
150        Err(Error::ResponseError(local_var_error))
151    }
152}
153
154/// Returns data about a specific pipeline. Also returns the summary of the deals in this pipeline across its stages.
155pub async fn get_pipeline(configuration: &configuration::Configuration, id: i32, totals_convert_currency: Option<&str>) -> Result<crate::models::GetPipelineResponse200, Error<GetPipelineError>> {
156    let local_var_configuration = configuration;
157
158    let local_var_client = &local_var_configuration.client;
159
160    let local_var_uri_str = format!("{}/pipelines/{id}", local_var_configuration.base_path, id=id);
161    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
162
163    if let Some(ref local_var_str) = totals_convert_currency {
164        local_var_req_builder = local_var_req_builder.query(&[("totals_convert_currency", &local_var_str.to_string())]);
165    }
166    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
167        let local_var_key = local_var_apikey.key.clone();
168        let local_var_value = match local_var_apikey.prefix {
169            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
170            None => local_var_key,
171        };
172        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
173    }
174    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
175        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
176    }
177    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
178        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
179    };
180
181    let local_var_req = local_var_req_builder.build()?;
182    let local_var_resp = local_var_client.execute(local_var_req).await?;
183
184    let local_var_status = local_var_resp.status();
185    let local_var_content = local_var_resp.text().await?;
186
187    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
188        serde_json::from_str(&local_var_content).map_err(Error::from)
189    } else {
190        let local_var_entity: Option<GetPipelineError> = serde_json::from_str(&local_var_content).ok();
191        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
192        Err(Error::ResponseError(local_var_error))
193    }
194}
195
196/// Returns all stage-to-stage conversion and pipeline-to-close rates for the given time period.
197pub async fn get_pipeline_conversion_statistics(configuration: &configuration::Configuration, id: i32, start_date: String, end_date: String, user_id: Option<i32>) -> Result<crate::models::GetPipelineConversionStatisticsResponse200, Error<GetPipelineConversionStatisticsError>> {
198    let local_var_configuration = configuration;
199
200    let local_var_client = &local_var_configuration.client;
201
202    let local_var_uri_str = format!("{}/pipelines/{id}/conversion_statistics", local_var_configuration.base_path, id=id);
203    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
204
205    local_var_req_builder = local_var_req_builder.query(&[("start_date", &start_date.to_string())]);
206    local_var_req_builder = local_var_req_builder.query(&[("end_date", &end_date.to_string())]);
207    if let Some(ref local_var_str) = user_id {
208        local_var_req_builder = local_var_req_builder.query(&[("user_id", &local_var_str.to_string())]);
209    }
210    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
211        let local_var_key = local_var_apikey.key.clone();
212        let local_var_value = match local_var_apikey.prefix {
213            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
214            None => local_var_key,
215        };
216        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
217    }
218    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
219        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
220    }
221    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
222        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
223    };
224
225    let local_var_req = local_var_req_builder.build()?;
226    let local_var_resp = local_var_client.execute(local_var_req).await?;
227
228    let local_var_status = local_var_resp.status();
229    let local_var_content = local_var_resp.text().await?;
230
231    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
232        serde_json::from_str(&local_var_content).map_err(Error::from)
233    } else {
234        let local_var_entity: Option<GetPipelineConversionStatisticsError> = serde_json::from_str(&local_var_content).ok();
235        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
236        Err(Error::ResponseError(local_var_error))
237    }
238}
239
240/// Lists deals in a specific pipeline across all its stages.
241pub async fn get_pipeline_deals(configuration: &configuration::Configuration, id: i32, filter_id: Option<i32>, user_id: Option<i32>, everyone: Option<f32>, stage_id: Option<i32>, start: Option<i32>, limit: Option<i32>, get_summary: Option<f32>, totals_convert_currency: Option<&str>) -> Result<crate::models::GetStageDealsResponse200, Error<GetPipelineDealsError>> {
242    let local_var_configuration = configuration;
243
244    let local_var_client = &local_var_configuration.client;
245
246    let local_var_uri_str = format!("{}/pipelines/{id}/deals", local_var_configuration.base_path, id=id);
247    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
248
249    if let Some(ref local_var_str) = filter_id {
250        local_var_req_builder = local_var_req_builder.query(&[("filter_id", &local_var_str.to_string())]);
251    }
252    if let Some(ref local_var_str) = user_id {
253        local_var_req_builder = local_var_req_builder.query(&[("user_id", &local_var_str.to_string())]);
254    }
255    if let Some(ref local_var_str) = everyone {
256        local_var_req_builder = local_var_req_builder.query(&[("everyone", &local_var_str.to_string())]);
257    }
258    if let Some(ref local_var_str) = stage_id {
259        local_var_req_builder = local_var_req_builder.query(&[("stage_id", &local_var_str.to_string())]);
260    }
261    if let Some(ref local_var_str) = start {
262        local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
263    }
264    if let Some(ref local_var_str) = limit {
265        local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
266    }
267    if let Some(ref local_var_str) = get_summary {
268        local_var_req_builder = local_var_req_builder.query(&[("get_summary", &local_var_str.to_string())]);
269    }
270    if let Some(ref local_var_str) = totals_convert_currency {
271        local_var_req_builder = local_var_req_builder.query(&[("totals_convert_currency", &local_var_str.to_string())]);
272    }
273    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
274        let local_var_key = local_var_apikey.key.clone();
275        let local_var_value = match local_var_apikey.prefix {
276            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
277            None => local_var_key,
278        };
279        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
280    }
281    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
282        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
283    }
284    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
285        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
286    };
287
288    let local_var_req = local_var_req_builder.build()?;
289    let local_var_resp = local_var_client.execute(local_var_req).await?;
290
291    let local_var_status = local_var_resp.status();
292    let local_var_content = local_var_resp.text().await?;
293
294    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
295        serde_json::from_str(&local_var_content).map_err(Error::from)
296    } else {
297        let local_var_entity: Option<GetPipelineDealsError> = serde_json::from_str(&local_var_content).ok();
298        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
299        Err(Error::ResponseError(local_var_error))
300    }
301}
302
303/// Returns statistics for deals movements for the given time period.
304pub async fn get_pipeline_movement_statistics(configuration: &configuration::Configuration, id: i32, start_date: String, end_date: String, user_id: Option<i32>) -> Result<crate::models::GetPipelineMovementStatisticsResponse200, Error<GetPipelineMovementStatisticsError>> {
305    let local_var_configuration = configuration;
306
307    let local_var_client = &local_var_configuration.client;
308
309    let local_var_uri_str = format!("{}/pipelines/{id}/movement_statistics", local_var_configuration.base_path, id=id);
310    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
311
312    local_var_req_builder = local_var_req_builder.query(&[("start_date", &start_date.to_string())]);
313    local_var_req_builder = local_var_req_builder.query(&[("end_date", &end_date.to_string())]);
314    if let Some(ref local_var_str) = user_id {
315        local_var_req_builder = local_var_req_builder.query(&[("user_id", &local_var_str.to_string())]);
316    }
317    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
318        let local_var_key = local_var_apikey.key.clone();
319        let local_var_value = match local_var_apikey.prefix {
320            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
321            None => local_var_key,
322        };
323        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
324    }
325    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
326        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
327    }
328    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
329        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
330    };
331
332    let local_var_req = local_var_req_builder.build()?;
333    let local_var_resp = local_var_client.execute(local_var_req).await?;
334
335    let local_var_status = local_var_resp.status();
336    let local_var_content = local_var_resp.text().await?;
337
338    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
339        serde_json::from_str(&local_var_content).map_err(Error::from)
340    } else {
341        let local_var_entity: Option<GetPipelineMovementStatisticsError> = serde_json::from_str(&local_var_content).ok();
342        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
343        Err(Error::ResponseError(local_var_error))
344    }
345}
346
347/// Returns data about all pipelines.
348pub async fn get_pipelines(configuration: &configuration::Configuration, ) -> Result<crate::models::GetPipelinesResponse200, Error<GetPipelinesError>> {
349    let local_var_configuration = configuration;
350
351    let local_var_client = &local_var_configuration.client;
352
353    let local_var_uri_str = format!("{}/pipelines", local_var_configuration.base_path);
354    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
355
356    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
357        let local_var_key = local_var_apikey.key.clone();
358        let local_var_value = match local_var_apikey.prefix {
359            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
360            None => local_var_key,
361        };
362        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
363    }
364    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
365        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
366    }
367    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
368        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
369    };
370
371    let local_var_req = local_var_req_builder.build()?;
372    let local_var_resp = local_var_client.execute(local_var_req).await?;
373
374    let local_var_status = local_var_resp.status();
375    let local_var_content = local_var_resp.text().await?;
376
377    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
378        serde_json::from_str(&local_var_content).map_err(Error::from)
379    } else {
380        let local_var_entity: Option<GetPipelinesError> = serde_json::from_str(&local_var_content).ok();
381        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
382        Err(Error::ResponseError(local_var_error))
383    }
384}
385
386/// Updates the properties of a pipeline.
387pub async fn update_pipeline(configuration: &configuration::Configuration, id: i32, pipeline_request1: Option<crate::models::PipelineRequest1>) -> Result<crate::models::UpdatePipelineResponse200, Error<UpdatePipelineError>> {
388    let local_var_configuration = configuration;
389
390    let local_var_client = &local_var_configuration.client;
391
392    let local_var_uri_str = format!("{}/pipelines/{id}", local_var_configuration.base_path, id=id);
393    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
394
395    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
396        let local_var_key = local_var_apikey.key.clone();
397        let local_var_value = match local_var_apikey.prefix {
398            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
399            None => local_var_key,
400        };
401        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
402    }
403    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
404        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
405    }
406    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
407        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
408    };
409    local_var_req_builder = local_var_req_builder.json(&pipeline_request1);
410
411    let local_var_req = local_var_req_builder.build()?;
412    let local_var_resp = local_var_client.execute(local_var_req).await?;
413
414    let local_var_status = local_var_resp.status();
415    let local_var_content = local_var_resp.text().await?;
416
417    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
418        serde_json::from_str(&local_var_content).map_err(Error::from)
419    } else {
420        let local_var_entity: Option<UpdatePipelineError> = serde_json::from_str(&local_var_content).ok();
421        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
422        Err(Error::ResponseError(local_var_error))
423    }
424}
425