data_for_seo/api/serp/google/
autocomplete.rs1use crate::entity::SerpApiGoogleAutocompleteAdvanced;
2use crate::{DataForSeoApiResponse, SerpApiGoogle, SerpApiTaskReadyResult};
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6impl SerpApiGoogle<'_> {
9 pub async fn autocomplete_task_post(
11 &self,
12 data: Vec<SerpApiGoogleAutoCompleteTaskPostRequest>,
13 ) -> DataForSeoApiResponse<Value> {
14 self.client
15 .http_post("/v3/serp/google/autocomplete/task_post", &data)
16 .await
17 }
18 pub async fn autocomplete_tasks_ready(&self) -> DataForSeoApiResponse<SerpApiTaskReadyResult> {
20 self.client
21 .serp()
22 .task_ready_se("google/autocomplete")
23 .await
24 }
25 pub async fn autocomplete_tasks_fixed(&self) -> DataForSeoApiResponse<SerpApiTaskReadyResult> {
27 self.client
28 .serp()
29 .task_fixed_se("google/autocomplete")
30 .await
31 }
32 pub async fn autocomplete_task_get_advanced(
34 &self,
35 id: &str,
36 ) -> DataForSeoApiResponse<SerpApiGoogleAutocompleteAdvanced> {
37 self.client
38 .http_get(format!("/v3/serp/google/autocomplete/task_get/advanced/{id}").as_str())
39 .await
40 }
41 pub async fn autocomplete_live_advanced(
43 &self,
44 data: Vec<SerpApiGoogleAutoCompleteTaskPostRequest>,
45 ) -> DataForSeoApiResponse<SerpApiGoogleAutocompleteAdvanced> {
46 self.client
47 .http_post("/v3/serp/google/autocomplete/live/advanced", &data)
48 .await
49 }
50}
51
52#[derive(Debug, Default, Serialize, Deserialize, Clone)]
55pub struct SerpApiGoogleAutoCompleteTaskPostRequest {
56 pub keyword: String,
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub priority: Option<i32>,
61 #[serde(skip_serializing_if = "Option::is_none")]
63 pub location_name: Option<String>,
64 pub location_code: i32,
66 #[serde(skip_serializing_if = "Option::is_none")]
68 pub language_name: Option<String>,
69 pub language_code: String,
71 #[serde(skip_serializing_if = "Option::is_none")]
73 pub cursor_pointer: Option<i32>,
74 #[serde(skip_serializing_if = "Option::is_none")]
76 pub client: Option<String>,
77 #[serde(skip_serializing_if = "Option::is_none")]
79 pub tag: Option<String>,
80 #[serde(skip_serializing_if = "Option::is_none")]
82 pub postback_url: Option<String>,
83 #[serde(skip_serializing_if = "Option::is_none")]
85 pub postback_data: Option<String>,
86 #[serde(skip_serializing_if = "Option::is_none")]
88 pub pingback_url: Option<String>,
89}
90
91impl SerpApiGoogleAutoCompleteTaskPostRequest {
92 pub fn new(language_code: String, location_code: i32) -> Self {
95 SerpApiGoogleAutoCompleteTaskPostRequest {
96 language_code,
97 location_code,
98 ..SerpApiGoogleAutoCompleteTaskPostRequest::default()
99 }
100 }
101}