1use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddLeadError {
22 UnknownValue(serde_json::Value),
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum DeleteLeadError {
29 Status404(crate::models::LeadResponse404),
30 UnknownValue(serde_json::Value),
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(untagged)]
36pub enum GetLeadError {
37 Status404(crate::models::LeadResponse404),
38 UnknownValue(serde_json::Value),
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
43#[serde(untagged)]
44pub enum GetLeadUsersError {
45 UnknownValue(serde_json::Value),
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize)]
50#[serde(untagged)]
51pub enum GetLeadsError {
52 UnknownValue(serde_json::Value),
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize)]
57#[serde(untagged)]
58pub enum SearchLeadsError {
59 UnknownValue(serde_json::Value),
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize)]
64#[serde(untagged)]
65pub enum UpdateLeadError {
66 Status404(crate::models::LeadResponse404),
67 UnknownValue(serde_json::Value),
68}
69
70
71pub async fn add_lead(configuration: &configuration::Configuration, add_lead_request: Option<crate::models::AddLeadRequest>) -> Result<crate::models::OneLeadResponse200, Error<AddLeadError>> {
73 let local_var_configuration = configuration;
74
75 let local_var_client = &local_var_configuration.client;
76
77 let local_var_uri_str = format!("{}/leads", local_var_configuration.base_path);
78 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
79
80 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
81 let local_var_key = local_var_apikey.key.clone();
82 let local_var_value = match local_var_apikey.prefix {
83 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
84 None => local_var_key,
85 };
86 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
87 }
88 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
89 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
90 }
91 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
92 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
93 };
94 local_var_req_builder = local_var_req_builder.json(&add_lead_request);
95
96 let local_var_req = local_var_req_builder.build()?;
97 let local_var_resp = local_var_client.execute(local_var_req).await?;
98
99 let local_var_status = local_var_resp.status();
100 let local_var_content = local_var_resp.text().await?;
101
102 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
103 serde_json::from_str(&local_var_content).map_err(Error::from)
104 } else {
105 let local_var_entity: Option<AddLeadError> = serde_json::from_str(&local_var_content).ok();
106 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
107 Err(Error::ResponseError(local_var_error))
108 }
109}
110
111pub async fn delete_lead(configuration: &configuration::Configuration, id: &str) -> Result<crate::models::LeadIdResponse200, Error<DeleteLeadError>> {
113 let local_var_configuration = configuration;
114
115 let local_var_client = &local_var_configuration.client;
116
117 let local_var_uri_str = format!("{}/leads/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
118 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
119
120 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
121 let local_var_key = local_var_apikey.key.clone();
122 let local_var_value = match local_var_apikey.prefix {
123 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
124 None => local_var_key,
125 };
126 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
127 }
128 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
129 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
130 }
131 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
132 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
133 };
134
135 let local_var_req = local_var_req_builder.build()?;
136 let local_var_resp = local_var_client.execute(local_var_req).await?;
137
138 let local_var_status = local_var_resp.status();
139 let local_var_content = local_var_resp.text().await?;
140
141 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
142 serde_json::from_str(&local_var_content).map_err(Error::from)
143 } else {
144 let local_var_entity: Option<DeleteLeadError> = serde_json::from_str(&local_var_content).ok();
145 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
146 Err(Error::ResponseError(local_var_error))
147 }
148}
149
150pub async fn get_lead(configuration: &configuration::Configuration, id: &str) -> Result<crate::models::OneLeadResponse200, Error<GetLeadError>> {
152 let local_var_configuration = configuration;
153
154 let local_var_client = &local_var_configuration.client;
155
156 let local_var_uri_str = format!("{}/leads/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
157 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
158
159 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
160 let local_var_key = local_var_apikey.key.clone();
161 let local_var_value = match local_var_apikey.prefix {
162 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
163 None => local_var_key,
164 };
165 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
166 }
167 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
168 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
169 }
170 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
171 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
172 };
173
174 let local_var_req = local_var_req_builder.build()?;
175 let local_var_resp = local_var_client.execute(local_var_req).await?;
176
177 let local_var_status = local_var_resp.status();
178 let local_var_content = local_var_resp.text().await?;
179
180 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
181 serde_json::from_str(&local_var_content).map_err(Error::from)
182 } else {
183 let local_var_entity: Option<GetLeadError> = serde_json::from_str(&local_var_content).ok();
184 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
185 Err(Error::ResponseError(local_var_error))
186 }
187}
188
189pub async fn get_lead_users(configuration: &configuration::Configuration, id: &str) -> Result<crate::models::UserIds, Error<GetLeadUsersError>> {
191 let local_var_configuration = configuration;
192
193 let local_var_client = &local_var_configuration.client;
194
195 let local_var_uri_str = format!("{}/leads/{id}/permittedUsers", local_var_configuration.base_path, id=crate::apis::urlencode(id));
196 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
197
198 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
199 let local_var_key = local_var_apikey.key.clone();
200 let local_var_value = match local_var_apikey.prefix {
201 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
202 None => local_var_key,
203 };
204 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
205 }
206 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
207 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
208 }
209
210 let local_var_req = local_var_req_builder.build()?;
211 let local_var_resp = local_var_client.execute(local_var_req).await?;
212
213 let local_var_status = local_var_resp.status();
214 let local_var_content = local_var_resp.text().await?;
215
216 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
217 serde_json::from_str(&local_var_content).map_err(Error::from)
218 } else {
219 let local_var_entity: Option<GetLeadUsersError> = serde_json::from_str(&local_var_content).ok();
220 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
221 Err(Error::ResponseError(local_var_error))
222 }
223}
224
225pub async fn get_leads(configuration: &configuration::Configuration, limit: Option<i32>, start: Option<i32>, archived_status: Option<&str>, owner_id: Option<i32>, person_id: Option<i32>, organization_id: Option<i32>, filter_id: Option<i32>, sort: Option<&str>) -> Result<crate::models::GetLeadsResponse200, Error<GetLeadsError>> {
227 let local_var_configuration = configuration;
228
229 let local_var_client = &local_var_configuration.client;
230
231 let local_var_uri_str = format!("{}/leads", local_var_configuration.base_path);
232 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
233
234 if let Some(ref local_var_str) = limit {
235 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
236 }
237 if let Some(ref local_var_str) = start {
238 local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
239 }
240 if let Some(ref local_var_str) = archived_status {
241 local_var_req_builder = local_var_req_builder.query(&[("archived_status", &local_var_str.to_string())]);
242 }
243 if let Some(ref local_var_str) = owner_id {
244 local_var_req_builder = local_var_req_builder.query(&[("owner_id", &local_var_str.to_string())]);
245 }
246 if let Some(ref local_var_str) = person_id {
247 local_var_req_builder = local_var_req_builder.query(&[("person_id", &local_var_str.to_string())]);
248 }
249 if let Some(ref local_var_str) = organization_id {
250 local_var_req_builder = local_var_req_builder.query(&[("organization_id", &local_var_str.to_string())]);
251 }
252 if let Some(ref local_var_str) = filter_id {
253 local_var_req_builder = local_var_req_builder.query(&[("filter_id", &local_var_str.to_string())]);
254 }
255 if let Some(ref local_var_str) = sort {
256 local_var_req_builder = local_var_req_builder.query(&[("sort", &local_var_str.to_string())]);
257 }
258 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
259 let local_var_key = local_var_apikey.key.clone();
260 let local_var_value = match local_var_apikey.prefix {
261 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
262 None => local_var_key,
263 };
264 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
265 }
266 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
267 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
268 }
269 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
270 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
271 };
272
273 let local_var_req = local_var_req_builder.build()?;
274 let local_var_resp = local_var_client.execute(local_var_req).await?;
275
276 let local_var_status = local_var_resp.status();
277 let local_var_content = local_var_resp.text().await?;
278
279 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
280 serde_json::from_str(&local_var_content).map_err(Error::from)
281 } else {
282 let local_var_entity: Option<GetLeadsError> = serde_json::from_str(&local_var_content).ok();
283 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
284 Err(Error::ResponseError(local_var_error))
285 }
286}
287
288pub async fn search_leads(configuration: &configuration::Configuration, term: &str, fields: Option<&str>, exact_match: Option<bool>, person_id: Option<i32>, organization_id: Option<i32>, include_fields: Option<&str>, start: Option<i32>, limit: Option<i32>) -> Result<crate::models::SearchLeadsResponse200, Error<SearchLeadsError>> {
290 let local_var_configuration = configuration;
291
292 let local_var_client = &local_var_configuration.client;
293
294 let local_var_uri_str = format!("{}/leads/search", local_var_configuration.base_path);
295 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
296
297 local_var_req_builder = local_var_req_builder.query(&[("term", &term.to_string())]);
298 if let Some(ref local_var_str) = fields {
299 local_var_req_builder = local_var_req_builder.query(&[("fields", &local_var_str.to_string())]);
300 }
301 if let Some(ref local_var_str) = exact_match {
302 local_var_req_builder = local_var_req_builder.query(&[("exact_match", &local_var_str.to_string())]);
303 }
304 if let Some(ref local_var_str) = person_id {
305 local_var_req_builder = local_var_req_builder.query(&[("person_id", &local_var_str.to_string())]);
306 }
307 if let Some(ref local_var_str) = organization_id {
308 local_var_req_builder = local_var_req_builder.query(&[("organization_id", &local_var_str.to_string())]);
309 }
310 if let Some(ref local_var_str) = include_fields {
311 local_var_req_builder = local_var_req_builder.query(&[("include_fields", &local_var_str.to_string())]);
312 }
313 if let Some(ref local_var_str) = start {
314 local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
315 }
316 if let Some(ref local_var_str) = limit {
317 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
318 }
319 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
320 let local_var_key = local_var_apikey.key.clone();
321 let local_var_value = match local_var_apikey.prefix {
322 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
323 None => local_var_key,
324 };
325 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
326 }
327 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
328 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
329 }
330 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
331 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
332 };
333
334 let local_var_req = local_var_req_builder.build()?;
335 let local_var_resp = local_var_client.execute(local_var_req).await?;
336
337 let local_var_status = local_var_resp.status();
338 let local_var_content = local_var_resp.text().await?;
339
340 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
341 serde_json::from_str(&local_var_content).map_err(Error::from)
342 } else {
343 let local_var_entity: Option<SearchLeadsError> = serde_json::from_str(&local_var_content).ok();
344 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
345 Err(Error::ResponseError(local_var_error))
346 }
347}
348
349pub async fn update_lead(configuration: &configuration::Configuration, id: &str, update_lead_request: Option<crate::models::UpdateLeadRequest>) -> Result<crate::models::OneLeadResponse200, Error<UpdateLeadError>> {
351 let local_var_configuration = configuration;
352
353 let local_var_client = &local_var_configuration.client;
354
355 let local_var_uri_str = format!("{}/leads/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
356 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
357
358 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
359 let local_var_key = local_var_apikey.key.clone();
360 let local_var_value = match local_var_apikey.prefix {
361 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
362 None => local_var_key,
363 };
364 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
365 }
366 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
367 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
368 }
369 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
370 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
371 };
372 local_var_req_builder = local_var_req_builder.json(&update_lead_request);
373
374 let local_var_req = local_var_req_builder.build()?;
375 let local_var_resp = local_var_client.execute(local_var_req).await?;
376
377 let local_var_status = local_var_resp.status();
378 let local_var_content = local_var_resp.text().await?;
379
380 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
381 serde_json::from_str(&local_var_content).map_err(Error::from)
382 } else {
383 let local_var_entity: Option<UpdateLeadError> = serde_json::from_str(&local_var_content).ok();
384 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
385 Err(Error::ResponseError(local_var_error))
386 }
387}
388