proxycurl_linkedin_rs/apis/
reveal_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 [`reveal_endpoint`]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum RevealEndpointError {
20    Status400(),
21    Status401(),
22    Status403(),
23    Status404(),
24    Status429(),
25    Status500(),
26    Status503(),
27    UnknownValue(serde_json::Value),
28}
29
30/// Cost: 2 credits / successful request. Deanonymize an IPv4 address and associate the Company behind the IPv4 address.
31pub async fn reveal_endpoint(
32    configuration: &configuration::Configuration,
33    ip: &str,
34    role_contact_number: Option<&str>,
35    role_personal_email: Option<&str>,
36    role: Option<&str>,
37) -> Result<crate::models::CompanyReveal, Error<RevealEndpointError>> {
38    let local_var_configuration = configuration;
39
40    let local_var_client = &local_var_configuration.client;
41
42    let local_var_uri_str = format!("{}/api/reveal/company", local_var_configuration.base_path);
43    let mut local_var_req_builder =
44        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
45
46    if let Some(ref local_var_str) = role_contact_number {
47        local_var_req_builder =
48            local_var_req_builder.query(&[("role_contact_number", &local_var_str.to_string())]);
49    }
50    if let Some(ref local_var_str) = role_personal_email {
51        local_var_req_builder =
52            local_var_req_builder.query(&[("role_personal_email", &local_var_str.to_string())]);
53    }
54    if let Some(ref local_var_str) = role {
55        local_var_req_builder =
56            local_var_req_builder.query(&[("role", &local_var_str.to_string())]);
57    }
58    local_var_req_builder = local_var_req_builder.query(&[("ip", &ip.to_string())]);
59    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
60        local_var_req_builder =
61            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
62    }
63    if let Some(ref local_var_token) = local_var_configuration.api_key {
64        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
65    };
66
67    let local_var_req = local_var_req_builder.build()?;
68    let local_var_resp = local_var_client.execute(local_var_req).await?;
69
70    let local_var_status = local_var_resp.status();
71    let local_var_content = local_var_resp.text().await?;
72
73    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
74        serde_json::from_str(&local_var_content).map_err(Error::from)
75    } else {
76        let local_var_entity: Option<RevealEndpointError> =
77            serde_json::from_str(&local_var_content).ok();
78        let local_var_error = ResponseContent {
79            status: local_var_status,
80            content: local_var_content,
81            entity: local_var_entity,
82        };
83        Err(Error::ResponseError(local_var_error))
84    }
85}