proxycurl_linkedin_rs/apis/
search_api.rs

1/*
2 * Proxycurl API
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
11use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15
16/// struct for typed errors of method [`company_search_endpoint`]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum CompanySearchEndpointError {
20    Status400(),
21    Status401(),
22    Status403(),
23    Status404(),
24    Status429(),
25    Status500(),
26    Status503(),
27    UnknownValue(serde_json::Value),
28}
29
30/// struct for typed errors of method [`person_search_endpoint`]
31#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(untagged)]
33pub enum PersonSearchEndpointError {
34    Status400(),
35    Status401(),
36    Status403(),
37    Status404(),
38    Status429(),
39    Status500(),
40    Status503(),
41    UnknownValue(serde_json::Value),
42}
43
44/// Cost: 35 credits / successful request base charge. Search for companies that meet a set of criteria within     our exhaustive dataset of company profiles.
45#[allow(clippy::too_many_arguments)]
46pub async fn company_search_endpoint(
47    configuration: &configuration::Configuration,
48    enrich_profiles: Option<&str>,
49    page_size: Option<&str>,
50    founded_before_year: Option<&str>,
51    founded_after_year: Option<&str>,
52    description: Option<&str>,
53    employee_count_min: Option<&str>,
54    employee_count_max: Option<&str>,
55    industry: Option<&str>,
56    name: Option<&str>,
57    follower_count_max: Option<&str>,
58    follower_count_min: Option<&str>,
59    r#type: Option<&str>,
60    city: Option<&str>,
61    region: Option<&str>,
62    country: Option<&str>,
63) -> Result<crate::models::CompanySearchResult, Error<CompanySearchEndpointError>> {
64    let local_var_configuration = configuration;
65
66    let local_var_client = &local_var_configuration.client;
67
68    let local_var_uri_str = format!("{}/api/search/company", local_var_configuration.base_path);
69    let mut local_var_req_builder =
70        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
71
72    if let Some(ref local_var_str) = enrich_profiles {
73        local_var_req_builder =
74            local_var_req_builder.query(&[("enrich_profiles", &local_var_str.to_string())]);
75    }
76    if let Some(ref local_var_str) = page_size {
77        local_var_req_builder =
78            local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
79    }
80    if let Some(ref local_var_str) = founded_before_year {
81        local_var_req_builder =
82            local_var_req_builder.query(&[("founded_before_year", &local_var_str.to_string())]);
83    }
84    if let Some(ref local_var_str) = founded_after_year {
85        local_var_req_builder =
86            local_var_req_builder.query(&[("founded_after_year", &local_var_str.to_string())]);
87    }
88    if let Some(ref local_var_str) = description {
89        local_var_req_builder =
90            local_var_req_builder.query(&[("description", &local_var_str.to_string())]);
91    }
92    if let Some(ref local_var_str) = employee_count_min {
93        local_var_req_builder =
94            local_var_req_builder.query(&[("employee_count_min", &local_var_str.to_string())]);
95    }
96    if let Some(ref local_var_str) = employee_count_max {
97        local_var_req_builder =
98            local_var_req_builder.query(&[("employee_count_max", &local_var_str.to_string())]);
99    }
100    if let Some(ref local_var_str) = industry {
101        local_var_req_builder =
102            local_var_req_builder.query(&[("industry", &local_var_str.to_string())]);
103    }
104    if let Some(ref local_var_str) = name {
105        local_var_req_builder =
106            local_var_req_builder.query(&[("name", &local_var_str.to_string())]);
107    }
108    if let Some(ref local_var_str) = follower_count_max {
109        local_var_req_builder =
110            local_var_req_builder.query(&[("follower_count_max", &local_var_str.to_string())]);
111    }
112    if let Some(ref local_var_str) = follower_count_min {
113        local_var_req_builder =
114            local_var_req_builder.query(&[("follower_count_min", &local_var_str.to_string())]);
115    }
116    if let Some(ref local_var_str) = r#type {
117        local_var_req_builder =
118            local_var_req_builder.query(&[("type", &local_var_str.to_string())]);
119    }
120    if let Some(ref local_var_str) = city {
121        local_var_req_builder =
122            local_var_req_builder.query(&[("city", &local_var_str.to_string())]);
123    }
124    if let Some(ref local_var_str) = region {
125        local_var_req_builder =
126            local_var_req_builder.query(&[("region", &local_var_str.to_string())]);
127    }
128    if let Some(ref local_var_str) = country {
129        local_var_req_builder =
130            local_var_req_builder.query(&[("country", &local_var_str.to_string())]);
131    }
132    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
133        local_var_req_builder =
134            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
135    }
136    if let Some(ref local_var_token) = local_var_configuration.api_key {
137        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
138    };
139
140    let local_var_req = local_var_req_builder.build()?;
141    let local_var_resp = local_var_client.execute(local_var_req).await?;
142
143    let local_var_status = local_var_resp.status();
144    let local_var_content = local_var_resp.text().await?;
145
146    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
147        serde_json::from_str(&local_var_content).map_err(Error::from)
148    } else {
149        let local_var_entity: Option<CompanySearchEndpointError> =
150            serde_json::from_str(&local_var_content).ok();
151        let local_var_error = ResponseContent {
152            status: local_var_status,
153            content: local_var_content,
154            entity: local_var_entity,
155        };
156        Err(Error::ResponseError(local_var_error))
157    }
158}
159
160/// Cost: 35 credits / successful request base charge. Search for people who meet a set of criteria within our exhaustive dataset of people profiles.  This API endpoint is powered by [LinkDB](https://nubela.co/proxycurl/linkdb), our exhaustive dataset of people and company profiles.
161#[allow(clippy::too_many_arguments)]
162pub async fn person_search_endpoint(
163    configuration: &configuration::Configuration,
164    enrich_profiles: Option<&str>,
165    page_size: Option<&str>,
166    summary: Option<&str>,
167    headline: Option<&str>,
168    city: Option<&str>,
169    region: Option<&str>,
170    country: Option<&str>,
171    languages: Option<&str>,
172    linkedin_groups: Option<&str>,
173    past_company_name: Option<&str>,
174    current_company_name: Option<&str>,
175    past_job_description: Option<&str>,
176    current_job_description: Option<&str>,
177    past_company_linkedin_profile_url: Option<&str>,
178    current_company_linkedin_profile_url: Option<&str>,
179    current_role_before: Option<&str>,
180    current_role_after: Option<&str>,
181    past_role_title: Option<&str>,
182    current_role_title: Option<&str>,
183    education_school_linkedin_profile_url: Option<&str>,
184    education_school_name: Option<&str>,
185    education_degree_name: Option<&str>,
186    education_field_of_study: Option<&str>,
187    last_name: Option<&str>,
188    first_name: Option<&str>,
189) -> Result<crate::models::PersonSearchResult, Error<PersonSearchEndpointError>> {
190    let local_var_configuration = configuration;
191
192    let local_var_client = &local_var_configuration.client;
193
194    let local_var_uri_str = format!("{}/api/search/person/", local_var_configuration.base_path);
195    let mut local_var_req_builder =
196        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
197
198    if let Some(ref local_var_str) = enrich_profiles {
199        local_var_req_builder =
200            local_var_req_builder.query(&[("enrich_profiles", &local_var_str.to_string())]);
201    }
202    if let Some(ref local_var_str) = page_size {
203        local_var_req_builder =
204            local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
205    }
206    if let Some(ref local_var_str) = summary {
207        local_var_req_builder =
208            local_var_req_builder.query(&[("summary", &local_var_str.to_string())]);
209    }
210    if let Some(ref local_var_str) = headline {
211        local_var_req_builder =
212            local_var_req_builder.query(&[("headline", &local_var_str.to_string())]);
213    }
214    if let Some(ref local_var_str) = city {
215        local_var_req_builder =
216            local_var_req_builder.query(&[("city", &local_var_str.to_string())]);
217    }
218    if let Some(ref local_var_str) = region {
219        local_var_req_builder =
220            local_var_req_builder.query(&[("region", &local_var_str.to_string())]);
221    }
222    if let Some(ref local_var_str) = country {
223        local_var_req_builder =
224            local_var_req_builder.query(&[("country", &local_var_str.to_string())]);
225    }
226    if let Some(ref local_var_str) = languages {
227        local_var_req_builder =
228            local_var_req_builder.query(&[("languages", &local_var_str.to_string())]);
229    }
230    if let Some(ref local_var_str) = linkedin_groups {
231        local_var_req_builder =
232            local_var_req_builder.query(&[("linkedin_groups", &local_var_str.to_string())]);
233    }
234    if let Some(ref local_var_str) = past_company_name {
235        local_var_req_builder =
236            local_var_req_builder.query(&[("past_company_name", &local_var_str.to_string())]);
237    }
238    if let Some(ref local_var_str) = current_company_name {
239        local_var_req_builder =
240            local_var_req_builder.query(&[("current_company_name", &local_var_str.to_string())]);
241    }
242    if let Some(ref local_var_str) = past_job_description {
243        local_var_req_builder =
244            local_var_req_builder.query(&[("past_job_description", &local_var_str.to_string())]);
245    }
246    if let Some(ref local_var_str) = current_job_description {
247        local_var_req_builder =
248            local_var_req_builder.query(&[("current_job_description", &local_var_str.to_string())]);
249    }
250    if let Some(ref local_var_str) = past_company_linkedin_profile_url {
251        local_var_req_builder = local_var_req_builder.query(&[(
252            "past_company_linkedin_profile_url",
253            &local_var_str.to_string(),
254        )]);
255    }
256    if let Some(ref local_var_str) = current_company_linkedin_profile_url {
257        local_var_req_builder = local_var_req_builder.query(&[(
258            "current_company_linkedin_profile_url",
259            &local_var_str.to_string(),
260        )]);
261    }
262    if let Some(ref local_var_str) = current_role_before {
263        local_var_req_builder =
264            local_var_req_builder.query(&[("current_role_before", &local_var_str.to_string())]);
265    }
266    if let Some(ref local_var_str) = current_role_after {
267        local_var_req_builder =
268            local_var_req_builder.query(&[("current_role_after", &local_var_str.to_string())]);
269    }
270    if let Some(ref local_var_str) = past_role_title {
271        local_var_req_builder =
272            local_var_req_builder.query(&[("past_role_title", &local_var_str.to_string())]);
273    }
274    if let Some(ref local_var_str) = current_role_title {
275        local_var_req_builder =
276            local_var_req_builder.query(&[("current_role_title", &local_var_str.to_string())]);
277    }
278    if let Some(ref local_var_str) = education_school_linkedin_profile_url {
279        local_var_req_builder = local_var_req_builder.query(&[(
280            "education_school_linkedin_profile_url",
281            &local_var_str.to_string(),
282        )]);
283    }
284    if let Some(ref local_var_str) = education_school_name {
285        local_var_req_builder =
286            local_var_req_builder.query(&[("education_school_name", &local_var_str.to_string())]);
287    }
288    if let Some(ref local_var_str) = education_degree_name {
289        local_var_req_builder =
290            local_var_req_builder.query(&[("education_degree_name", &local_var_str.to_string())]);
291    }
292    if let Some(ref local_var_str) = education_field_of_study {
293        local_var_req_builder = local_var_req_builder
294            .query(&[("education_field_of_study", &local_var_str.to_string())]);
295    }
296    if let Some(ref local_var_str) = last_name {
297        local_var_req_builder =
298            local_var_req_builder.query(&[("last_name", &local_var_str.to_string())]);
299    }
300    if let Some(ref local_var_str) = first_name {
301        local_var_req_builder =
302            local_var_req_builder.query(&[("first_name", &local_var_str.to_string())]);
303    }
304    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
305        local_var_req_builder =
306            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
307    }
308    if let Some(ref local_var_token) = local_var_configuration.api_key {
309        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
310    };
311
312    let local_var_req = local_var_req_builder.build()?;
313    let local_var_resp = local_var_client.execute(local_var_req).await?;
314
315    let local_var_status = local_var_resp.status();
316    let local_var_content = local_var_resp.text().await?;
317
318    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
319        serde_json::from_str(&local_var_content).map_err(Error::from)
320    } else {
321        let local_var_entity: Option<PersonSearchEndpointError> =
322            serde_json::from_str(&local_var_content).ok();
323        let local_var_error = ResponseContent {
324            status: local_var_status,
325            content: local_var_content,
326            entity: local_var_entity,
327        };
328        Err(Error::ResponseError(local_var_error))
329    }
330}