data_for_seo/api/serp/google/
event.rs1use crate::entity::SerpApiGoogleEventAdvance;
2use crate::{DataForSeoApiResponse, SerpApiGoogle, SerpApiLocation, SerpApiTaskReadyResult};
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6impl SerpApiGoogle<'_> {
9 pub async fn events_locations(&self) -> DataForSeoApiResponse<SerpApiLocation> {
11 self.client.serp().locations_se("google/events").await
12 }
13 pub async fn events_task_post(
15 &self,
16 data: Vec<SerpApiGoogleEventsTaskPostRequest>,
17 ) -> DataForSeoApiResponse<Value> {
18 self.client
19 .http_post("/v3/serp/google/events/task_post", &data)
20 .await
21 }
22 pub async fn events_tasks_ready(&self) -> DataForSeoApiResponse<SerpApiTaskReadyResult> {
24 self.client.serp().task_ready_se("google/events").await
25 }
26 pub async fn events_tasks_fixed(&self) -> DataForSeoApiResponse<SerpApiTaskReadyResult> {
28 self.client.serp().task_fixed_se("google/events").await
29 }
30 pub async fn events_task_get_advanced(
32 &self,
33 id: &str,
34 ) -> DataForSeoApiResponse<SerpApiGoogleEventAdvance> {
35 self.client
36 .http_get(format!("/v3/serp/google/events/task_get/advanced/{id}").as_str())
37 .await
38 }
39 pub async fn events_live_advanced(
41 &self,
42 data: Vec<SerpApiGoogleEventsTaskPostRequest>,
43 ) -> DataForSeoApiResponse<SerpApiGoogleEventAdvance> {
44 self.client
45 .http_post("/v3/serp/google/events/live/advanced", &data)
46 .await
47 }
48}
49
50#[derive(Debug, Default, Serialize, Deserialize, Clone)]
53pub struct SerpApiGoogleEventsTaskPostRequest {
54 pub keyword: String,
56 #[serde(skip_serializing_if = "Option::is_none")]
58 pub priority: Option<i32>,
59 #[serde(skip_serializing_if = "Option::is_none")]
61 pub location_name: Option<String>,
62 pub location_code: i32,
64 #[serde(skip_serializing_if = "Option::is_none")]
66 pub location_coordinate: Option<String>,
67 #[serde(skip_serializing_if = "Option::is_none")]
69 pub language_name: Option<String>,
70 pub language_code: String,
72 #[serde(skip_serializing_if = "Option::is_none")]
74 pub date_range: Option<String>,
75 #[serde(skip_serializing_if = "Option::is_none")]
77 pub os: Option<String>,
78 #[serde(skip_serializing_if = "Option::is_none")]
80 pub se_domain: Option<String>,
81 #[serde(skip_serializing_if = "Option::is_none")]
83 pub depth: Option<i32>,
84 #[serde(skip_serializing_if = "Option::is_none")]
86 pub max_crawl_pages: Option<i32>,
87 #[serde(skip_serializing_if = "Option::is_none")]
89 pub tag: Option<String>,
90 #[serde(skip_serializing_if = "Option::is_none")]
92 pub postback_url: Option<String>,
93 #[serde(skip_serializing_if = "Option::is_none")]
95 pub postback_data: Option<String>,
96 #[serde(skip_serializing_if = "Option::is_none")]
98 pub pingback_url: Option<String>,
99}
100
101impl SerpApiGoogleEventsTaskPostRequest {
102 pub fn new(language_code: String, location_code: i32) -> Self {
105 SerpApiGoogleEventsTaskPostRequest {
106 language_code,
107 location_code,
108 ..SerpApiGoogleEventsTaskPostRequest::default()
109 }
110 }
111}