pipedrive_rs/apis/
webhooks_api.rs1use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddWebhookError {
22 Status400(crate::models::WebhooksBadRequestResponse),
23 Status401(crate::models::UnathorizedResponse),
24 UnknownValue(serde_json::Value),
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum DeleteWebhookError {
31 Status401(crate::models::UnathorizedResponse),
32 Status403(crate::models::DeleteWebhook403Response),
33 Status404(crate::models::WebhooksBadRequestResponse),
34 UnknownValue(serde_json::Value),
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum GetWebhooksError {
41 Status401(crate::models::UnathorizedResponse),
42 UnknownValue(serde_json::Value),
43}
44
45
46pub async fn add_webhook(configuration: &configuration::Configuration, add_webhook_request: Option<crate::models::AddWebhookRequest>) -> Result<crate::models::WebhookResponse200, Error<AddWebhookError>> {
48 let local_var_configuration = configuration;
49
50 let local_var_client = &local_var_configuration.client;
51
52 let local_var_uri_str = format!("{}/webhooks", local_var_configuration.base_path);
53 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
54
55 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
56 let local_var_key = local_var_apikey.key.clone();
57 let local_var_value = match local_var_apikey.prefix {
58 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
59 None => local_var_key,
60 };
61 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
62 }
63 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
64 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
65 }
66 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
67 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
68 };
69 local_var_req_builder = local_var_req_builder.json(&add_webhook_request);
70
71 let local_var_req = local_var_req_builder.build()?;
72 let local_var_resp = local_var_client.execute(local_var_req).await?;
73
74 let local_var_status = local_var_resp.status();
75 let local_var_content = local_var_resp.text().await?;
76
77 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
78 serde_json::from_str(&local_var_content).map_err(Error::from)
79 } else {
80 let local_var_entity: Option<AddWebhookError> = serde_json::from_str(&local_var_content).ok();
81 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
82 Err(Error::ResponseError(local_var_error))
83 }
84}
85
86pub async fn delete_webhook(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::BaseResponse200, Error<DeleteWebhookError>> {
88 let local_var_configuration = configuration;
89
90 let local_var_client = &local_var_configuration.client;
91
92 let local_var_uri_str = format!("{}/webhooks/{id}", local_var_configuration.base_path, id=id);
93 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
94
95 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
96 let local_var_key = local_var_apikey.key.clone();
97 let local_var_value = match local_var_apikey.prefix {
98 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
99 None => local_var_key,
100 };
101 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
102 }
103 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
104 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
105 }
106 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
107 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
108 };
109
110 let local_var_req = local_var_req_builder.build()?;
111 let local_var_resp = local_var_client.execute(local_var_req).await?;
112
113 let local_var_status = local_var_resp.status();
114 let local_var_content = local_var_resp.text().await?;
115
116 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
117 serde_json::from_str(&local_var_content).map_err(Error::from)
118 } else {
119 let local_var_entity: Option<DeleteWebhookError> = serde_json::from_str(&local_var_content).ok();
120 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
121 Err(Error::ResponseError(local_var_error))
122 }
123}
124
125pub async fn get_webhooks(configuration: &configuration::Configuration, ) -> Result<crate::models::GetWebhooksResponse200, Error<GetWebhooksError>> {
127 let local_var_configuration = configuration;
128
129 let local_var_client = &local_var_configuration.client;
130
131 let local_var_uri_str = format!("{}/webhooks", local_var_configuration.base_path);
132 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
133
134 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
135 let local_var_key = local_var_apikey.key.clone();
136 let local_var_value = match local_var_apikey.prefix {
137 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
138 None => local_var_key,
139 };
140 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
141 }
142 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
143 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
144 }
145 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
146 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
147 };
148
149 let local_var_req = local_var_req_builder.build()?;
150 let local_var_resp = local_var_client.execute(local_var_req).await?;
151
152 let local_var_status = local_var_resp.status();
153 let local_var_content = local_var_resp.text().await?;
154
155 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
156 serde_json::from_str(&local_var_content).map_err(Error::from)
157 } else {
158 let local_var_entity: Option<GetWebhooksError> = serde_json::from_str(&local_var_content).ok();
159 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
160 Err(Error::ResponseError(local_var_error))
161 }
162}
163