fastly_api/apis/
domain_research_api.rs1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct DomainStatusParams {
17 pub domain: String,
18 pub scope: Option<String>
19}
20
21#[derive(Clone, Debug, Default)]
23pub struct SuggestDomainsParams {
24 pub query: String,
25 pub defaults: Option<String>,
26 pub keywords: Option<String>,
27 pub location: Option<String>,
28 pub vendor: Option<String>
29}
30
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum DomainStatusError {
36 UnknownValue(serde_json::Value),
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum SuggestDomainsError {
43 UnknownValue(serde_json::Value),
44}
45
46
47pub async fn domain_status(configuration: &mut configuration::Configuration, params: DomainStatusParams) -> Result<crate::models::Status, Error<DomainStatusError>> {
49 let local_var_configuration = configuration;
50
51 let domain = params.domain;
53 let scope = params.scope;
54
55
56 let local_var_client = &local_var_configuration.client;
57
58 let local_var_uri_str = format!("{}/domain-management/v1/tools/status", local_var_configuration.base_path);
59 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
60
61 local_var_req_builder = local_var_req_builder.query(&[("domain", &domain.to_string())]);
62 if let Some(ref local_var_str) = scope {
63 local_var_req_builder = local_var_req_builder.query(&[("scope", &local_var_str.to_string())]);
64 }
65 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
66 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
67 }
68 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
69 let local_var_key = local_var_apikey.key.clone();
70 let local_var_value = match local_var_apikey.prefix {
71 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
72 None => local_var_key,
73 };
74 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
75 };
76
77 let local_var_req = local_var_req_builder.build()?;
78 let local_var_resp = local_var_client.execute(local_var_req).await?;
79
80 if "GET" != "GET" && "GET" != "HEAD" {
81 let headers = local_var_resp.headers();
82 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
83 Some(v) => v.to_str().unwrap().parse().unwrap(),
84 None => configuration::DEFAULT_RATELIMIT,
85 };
86 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
87 Some(v) => v.to_str().unwrap().parse().unwrap(),
88 None => 0,
89 };
90 }
91
92 let local_var_status = local_var_resp.status();
93 let local_var_content = local_var_resp.text().await?;
94
95 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
96 serde_json::from_str(&local_var_content).map_err(Error::from)
97 } else {
98 let local_var_entity: Option<DomainStatusError> = serde_json::from_str(&local_var_content).ok();
99 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
100 Err(Error::ResponseError(local_var_error))
101 }
102}
103
104pub async fn suggest_domains(configuration: &mut configuration::Configuration, params: SuggestDomainsParams) -> Result<crate::models::InlineResponse2006, Error<SuggestDomainsError>> {
106 let local_var_configuration = configuration;
107
108 let query = params.query;
110 let defaults = params.defaults;
111 let keywords = params.keywords;
112 let location = params.location;
113 let vendor = params.vendor;
114
115
116 let local_var_client = &local_var_configuration.client;
117
118 let local_var_uri_str = format!("{}/domain-management/v1/tools/suggest", local_var_configuration.base_path);
119 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
120
121 local_var_req_builder = local_var_req_builder.query(&[("query", &query.to_string())]);
122 if let Some(ref local_var_str) = defaults {
123 local_var_req_builder = local_var_req_builder.query(&[("defaults", &local_var_str.to_string())]);
124 }
125 if let Some(ref local_var_str) = keywords {
126 local_var_req_builder = local_var_req_builder.query(&[("keywords", &local_var_str.to_string())]);
127 }
128 if let Some(ref local_var_str) = location {
129 local_var_req_builder = local_var_req_builder.query(&[("location", &local_var_str.to_string())]);
130 }
131 if let Some(ref local_var_str) = vendor {
132 local_var_req_builder = local_var_req_builder.query(&[("vendor", &local_var_str.to_string())]);
133 }
134 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
135 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
136 }
137 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
138 let local_var_key = local_var_apikey.key.clone();
139 let local_var_value = match local_var_apikey.prefix {
140 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
141 None => local_var_key,
142 };
143 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
144 };
145
146 let local_var_req = local_var_req_builder.build()?;
147 let local_var_resp = local_var_client.execute(local_var_req).await?;
148
149 if "GET" != "GET" && "GET" != "HEAD" {
150 let headers = local_var_resp.headers();
151 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
152 Some(v) => v.to_str().unwrap().parse().unwrap(),
153 None => configuration::DEFAULT_RATELIMIT,
154 };
155 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
156 Some(v) => v.to_str().unwrap().parse().unwrap(),
157 None => 0,
158 };
159 }
160
161 let local_var_status = local_var_resp.status();
162 let local_var_content = local_var_resp.text().await?;
163
164 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
165 serde_json::from_str(&local_var_content).map_err(Error::from)
166 } else {
167 let local_var_entity: Option<SuggestDomainsError> = serde_json::from_str(&local_var_content).ok();
168 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
169 Err(Error::ResponseError(local_var_error))
170 }
171}
172