pipedrive_rs/apis/
activities_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_activity`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddActivityError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`delete_activities`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum DeleteActivitiesError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`delete_activity`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum DeleteActivityError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`get_activities`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum GetActivitiesError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`get_activities_collection`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum GetActivitiesCollectionError {
50    Status403(crate::models::FailResponse),
51    UnknownValue(serde_json::Value),
52}
53
54/// struct for typed errors of method [`get_activity`]
55#[derive(Debug, Clone, Serialize, Deserialize)]
56#[serde(untagged)]
57pub enum GetActivityError {
58    UnknownValue(serde_json::Value),
59}
60
61/// struct for typed errors of method [`update_activity`]
62#[derive(Debug, Clone, Serialize, Deserialize)]
63#[serde(untagged)]
64pub enum UpdateActivityError {
65    UnknownValue(serde_json::Value),
66}
67
68
69/// Adds a new activity. Includes `more_activities_scheduled_in_context` property in response's `additional_data` which indicates whether there are more undone activities scheduled with the same deal, person or organization (depending on the supplied data). For more information, see the tutorial for <a href=\"https://pipedrive.readme.io/docs/adding-an-activity\" target=\"_blank\" rel=\"noopener noreferrer\">adding an activity</a>.
70pub async fn add_activity(configuration: &configuration::Configuration, add_activity_request: Option<crate::models::AddActivityRequest>) -> Result<crate::models::AddActivityResponse200, Error<AddActivityError>> {
71    let local_var_configuration = configuration;
72
73    let local_var_client = &local_var_configuration.client;
74
75    let local_var_uri_str = format!("{}/activities", local_var_configuration.base_path);
76    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
77
78    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
79        let local_var_key = local_var_apikey.key.clone();
80        let local_var_value = match local_var_apikey.prefix {
81            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
82            None => local_var_key,
83        };
84        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
85    }
86    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
87        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
88    }
89    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
90        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
91    };
92    local_var_req_builder = local_var_req_builder.json(&add_activity_request);
93
94    let local_var_req = local_var_req_builder.build()?;
95    let local_var_resp = local_var_client.execute(local_var_req).await?;
96
97    let local_var_status = local_var_resp.status();
98    let local_var_content = local_var_resp.text().await?;
99
100    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
101        serde_json::from_str(&local_var_content).map_err(Error::from)
102    } else {
103        let local_var_entity: Option<AddActivityError> = serde_json::from_str(&local_var_content).ok();
104        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
105        Err(Error::ResponseError(local_var_error))
106    }
107}
108
109/// Marks multiple activities as deleted. After 30 days, the activities will be permanently deleted.
110pub async fn delete_activities(configuration: &configuration::Configuration, ids: &str) -> Result<crate::models::DeleteActivitiesResponse200, Error<DeleteActivitiesError>> {
111    let local_var_configuration = configuration;
112
113    let local_var_client = &local_var_configuration.client;
114
115    let local_var_uri_str = format!("{}/activities", local_var_configuration.base_path);
116    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
117
118    local_var_req_builder = local_var_req_builder.query(&[("ids", &ids.to_string())]);
119    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
120        let local_var_key = local_var_apikey.key.clone();
121        let local_var_value = match local_var_apikey.prefix {
122            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
123            None => local_var_key,
124        };
125        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
126    }
127    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
128        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
129    }
130    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
131        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
132    };
133
134    let local_var_req = local_var_req_builder.build()?;
135    let local_var_resp = local_var_client.execute(local_var_req).await?;
136
137    let local_var_status = local_var_resp.status();
138    let local_var_content = local_var_resp.text().await?;
139
140    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
141        serde_json::from_str(&local_var_content).map_err(Error::from)
142    } else {
143        let local_var_entity: Option<DeleteActivitiesError> = serde_json::from_str(&local_var_content).ok();
144        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
145        Err(Error::ResponseError(local_var_error))
146    }
147}
148
149/// Marks an activity as deleted. After 30 days, the activity will be permanently deleted.
150pub async fn delete_activity(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::DeleteActivityResponse200, Error<DeleteActivityError>> {
151    let local_var_configuration = configuration;
152
153    let local_var_client = &local_var_configuration.client;
154
155    let local_var_uri_str = format!("{}/activities/{id}", local_var_configuration.base_path, id=id);
156    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
157
158    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
159        let local_var_key = local_var_apikey.key.clone();
160        let local_var_value = match local_var_apikey.prefix {
161            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
162            None => local_var_key,
163        };
164        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
165    }
166    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
167        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
168    }
169    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
170        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
171    };
172
173    let local_var_req = local_var_req_builder.build()?;
174    let local_var_resp = local_var_client.execute(local_var_req).await?;
175
176    let local_var_status = local_var_resp.status();
177    let local_var_content = local_var_resp.text().await?;
178
179    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
180        serde_json::from_str(&local_var_content).map_err(Error::from)
181    } else {
182        let local_var_entity: Option<DeleteActivityError> = serde_json::from_str(&local_var_content).ok();
183        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
184        Err(Error::ResponseError(local_var_error))
185    }
186}
187
188/// Returns all activities assigned to a particular user.
189pub async fn get_activities(configuration: &configuration::Configuration, user_id: Option<i32>, filter_id: Option<i32>, r#type: Option<&str>, limit: Option<i32>, start: Option<i32>, start_date: Option<String>, end_date: Option<String>, done: Option<f32>) -> Result<crate::models::GetActivitiesResponse200, Error<GetActivitiesError>> {
190    let local_var_configuration = configuration;
191
192    let local_var_client = &local_var_configuration.client;
193
194    let local_var_uri_str = format!("{}/activities", local_var_configuration.base_path);
195    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
196
197    if let Some(ref local_var_str) = user_id {
198        local_var_req_builder = local_var_req_builder.query(&[("user_id", &local_var_str.to_string())]);
199    }
200    if let Some(ref local_var_str) = filter_id {
201        local_var_req_builder = local_var_req_builder.query(&[("filter_id", &local_var_str.to_string())]);
202    }
203    if let Some(ref local_var_str) = r#type {
204        local_var_req_builder = local_var_req_builder.query(&[("type", &local_var_str.to_string())]);
205    }
206    if let Some(ref local_var_str) = limit {
207        local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
208    }
209    if let Some(ref local_var_str) = start {
210        local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
211    }
212    if let Some(ref local_var_str) = start_date {
213        local_var_req_builder = local_var_req_builder.query(&[("start_date", &local_var_str.to_string())]);
214    }
215    if let Some(ref local_var_str) = end_date {
216        local_var_req_builder = local_var_req_builder.query(&[("end_date", &local_var_str.to_string())]);
217    }
218    if let Some(ref local_var_str) = done {
219        local_var_req_builder = local_var_req_builder.query(&[("done", &local_var_str.to_string())]);
220    }
221    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
222        let local_var_key = local_var_apikey.key.clone();
223        let local_var_value = match local_var_apikey.prefix {
224            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
225            None => local_var_key,
226        };
227        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
228    }
229    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
230        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
231    }
232    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
233        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
234    };
235
236    let local_var_req = local_var_req_builder.build()?;
237    let local_var_resp = local_var_client.execute(local_var_req).await?;
238
239    let local_var_status = local_var_resp.status();
240    let local_var_content = local_var_resp.text().await?;
241
242    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
243        serde_json::from_str(&local_var_content).map_err(Error::from)
244    } else {
245        let local_var_entity: Option<GetActivitiesError> = serde_json::from_str(&local_var_content).ok();
246        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
247        Err(Error::ResponseError(local_var_error))
248    }
249}
250
251/// Returns all activities. This is a cursor-paginated endpoint that is currently in BETA. For more information, please refer to our documentation on <a href=\"https://pipedrive.readme.io/docs/core-api-concepts-pagination\" target=\"_blank\" rel=\"noopener noreferrer\">pagination</a>. Please note that only global admins (those with global permissions) can access these endpoints. Users with regular permissions will receive a 403 response. Read more about global permissions <a href=\"https://support.pipedrive.com/en/article/global-user-management\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.
252pub async fn get_activities_collection(configuration: &configuration::Configuration, cursor: Option<&str>, limit: Option<i32>, since: Option<&str>, until: Option<&str>, user_id: Option<i32>, done: Option<bool>, r#type: Option<&str>) -> Result<crate::models::GetActivitiesCollectionResponse200, Error<GetActivitiesCollectionError>> {
253    let local_var_configuration = configuration;
254
255    let local_var_client = &local_var_configuration.client;
256
257    let local_var_uri_str = format!("{}/activities/collection", local_var_configuration.base_path);
258    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
259
260    if let Some(ref local_var_str) = cursor {
261        local_var_req_builder = local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
262    }
263    if let Some(ref local_var_str) = limit {
264        local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
265    }
266    if let Some(ref local_var_str) = since {
267        local_var_req_builder = local_var_req_builder.query(&[("since", &local_var_str.to_string())]);
268    }
269    if let Some(ref local_var_str) = until {
270        local_var_req_builder = local_var_req_builder.query(&[("until", &local_var_str.to_string())]);
271    }
272    if let Some(ref local_var_str) = user_id {
273        local_var_req_builder = local_var_req_builder.query(&[("user_id", &local_var_str.to_string())]);
274    }
275    if let Some(ref local_var_str) = done {
276        local_var_req_builder = local_var_req_builder.query(&[("done", &local_var_str.to_string())]);
277    }
278    if let Some(ref local_var_str) = r#type {
279        local_var_req_builder = local_var_req_builder.query(&[("type", &local_var_str.to_string())]);
280    }
281    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
282        let local_var_key = local_var_apikey.key.clone();
283        let local_var_value = match local_var_apikey.prefix {
284            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
285            None => local_var_key,
286        };
287        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
288    }
289    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
290        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
291    }
292    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
293        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
294    };
295
296    let local_var_req = local_var_req_builder.build()?;
297    let local_var_resp = local_var_client.execute(local_var_req).await?;
298
299    let local_var_status = local_var_resp.status();
300    let local_var_content = local_var_resp.text().await?;
301
302    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
303        serde_json::from_str(&local_var_content).map_err(Error::from)
304    } else {
305        let local_var_entity: Option<GetActivitiesCollectionError> = serde_json::from_str(&local_var_content).ok();
306        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
307        Err(Error::ResponseError(local_var_error))
308    }
309}
310
311/// Returns the details of a specific activity.
312pub async fn get_activity(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::GetActivityResponse200, Error<GetActivityError>> {
313    let local_var_configuration = configuration;
314
315    let local_var_client = &local_var_configuration.client;
316
317    let local_var_uri_str = format!("{}/activities/{id}", local_var_configuration.base_path, id=id);
318    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
319
320    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
321        let local_var_key = local_var_apikey.key.clone();
322        let local_var_value = match local_var_apikey.prefix {
323            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
324            None => local_var_key,
325        };
326        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
327    }
328    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
329        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
330    }
331    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
332        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
333    };
334
335    let local_var_req = local_var_req_builder.build()?;
336    let local_var_resp = local_var_client.execute(local_var_req).await?;
337
338    let local_var_status = local_var_resp.status();
339    let local_var_content = local_var_resp.text().await?;
340
341    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
342        serde_json::from_str(&local_var_content).map_err(Error::from)
343    } else {
344        let local_var_entity: Option<GetActivityError> = serde_json::from_str(&local_var_content).ok();
345        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
346        Err(Error::ResponseError(local_var_error))
347    }
348}
349
350/// Updates an activity. Includes `more_activities_scheduled_in_context` property in response's `additional_data` which indicates whether there are more undone activities scheduled with the same deal, person or organization (depending on the supplied data).
351pub async fn update_activity(configuration: &configuration::Configuration, id: i32, update_activity_request: Option<crate::models::UpdateActivityRequest>) -> Result<crate::models::UpdateActivityResponse200, Error<UpdateActivityError>> {
352    let local_var_configuration = configuration;
353
354    let local_var_client = &local_var_configuration.client;
355
356    let local_var_uri_str = format!("{}/activities/{id}", local_var_configuration.base_path, id=id);
357    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
358
359    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
360        let local_var_key = local_var_apikey.key.clone();
361        let local_var_value = match local_var_apikey.prefix {
362            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
363            None => local_var_key,
364        };
365        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
366    }
367    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
368        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
369    }
370    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
371        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
372    };
373    local_var_req_builder = local_var_req_builder.json(&update_activity_request);
374
375    let local_var_req = local_var_req_builder.build()?;
376    let local_var_resp = local_var_client.execute(local_var_req).await?;
377
378    let local_var_status = local_var_resp.status();
379    let local_var_content = local_var_resp.text().await?;
380
381    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
382        serde_json::from_str(&local_var_content).map_err(Error::from)
383    } else {
384        let local_var_entity: Option<UpdateActivityError> = serde_json::from_str(&local_var_content).ok();
385        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
386        Err(Error::ResponseError(local_var_error))
387    }
388}
389