use crate::entity::{
SerpApiGoogleFinanceExploreTaskAdvanced, SerpApiGoogleFinanceExploreTaskHtml,
SerpApiGoogleFinanceMarketsTaskAdvanced, SerpApiGoogleFinanceMarketsTaskHtml,
SerpApiGoogleFinanceQuoteTaskAdvanced, SerpApiGoogleFinanceTickerSearchTaskAdvanced,
};
use crate::{DataForSeoApiResponse, SerpApiGoogle, SerpApiTaskReadyResult};
use serde::{Deserialize, Serialize};
use serde_json::Value;
impl SerpApiGoogle<'_> {
pub async fn finance_explore_task_post(
&self,
data: Vec<SerpApiGoogleFinanceExploreTaskPostRequest>,
) -> DataForSeoApiResponse<Value> {
self.client
.http_post("/v3/serp/google/finance_explore/task_post", &data)
.await
}
pub async fn finance_explore_tasks_ready(
&self,
) -> DataForSeoApiResponse<SerpApiTaskReadyResult> {
self.client
.serp()
.task_ready_se("google/finance_explore")
.await
}
pub async fn finance_explore_task_get_advanced(
&self,
id: &str,
) -> DataForSeoApiResponse<SerpApiGoogleFinanceExploreTaskAdvanced> {
self.client
.http_get(format!("/v3/serp/google/finance_explore/task_get/advanced/{id}").as_str())
.await
}
pub async fn finance_explore_task_get_html(
&self,
id: &str,
) -> DataForSeoApiResponse<SerpApiGoogleFinanceExploreTaskHtml> {
self.client
.http_get(format!("/v3/serp/google/finance_explore/task_get/html/{id}").as_str())
.await
}
pub async fn finance_explore_live_advanced(
&self,
data: Vec<SerpApiGoogleFinanceExploreTaskPostRequest>,
) -> DataForSeoApiResponse<SerpApiGoogleFinanceExploreTaskAdvanced> {
self.client
.http_post("/v3/serp/google/finance_explore/live/advanced", &data)
.await
}
pub async fn finance_ticker_search_task_post(
&self,
data: Vec<SerpApiGoogleFinanceTickerSearchTaskPostRequest>,
) -> DataForSeoApiResponse<Value> {
self.client
.http_post("/v3/serp/google/finance_ticker_search/task_post", &data)
.await
}
pub async fn finance_ticker_search_tasks_ready(
&self,
) -> DataForSeoApiResponse<SerpApiTaskReadyResult> {
self.client
.serp()
.task_ready_se("google/finance_ticker_search")
.await
}
pub async fn finance_ticker_search_task_get_advanced(
&self,
id: &str,
) -> DataForSeoApiResponse<SerpApiGoogleFinanceTickerSearchTaskAdvanced> {
self.client
.http_get(
format!("/v3/serp/google/finance_ticker_search/task_get/advanced/{id}").as_str(),
)
.await
}
pub async fn finance_ticker_search_live_advanced(
&self,
data: Vec<SerpApiGoogleFinanceTickerSearchTaskPostRequest>,
) -> DataForSeoApiResponse<SerpApiGoogleFinanceTickerSearchTaskAdvanced> {
self.client
.http_post("/v3/serp/google/finance_ticker_search/live/advanced", &data)
.await
}
pub async fn finance_markets_task_post(
&self,
data: Vec<SerpApiGoogleFinanceMarketsTaskPostRequest>,
) -> DataForSeoApiResponse<Value> {
self.client
.http_post("/v3/serp/google/finance_markets/task_post", &data)
.await
}
pub async fn finance_markets_tasks_ready(
&self,
) -> DataForSeoApiResponse<SerpApiTaskReadyResult> {
self.client
.serp()
.task_ready_se("google/finance_markets")
.await
}
pub async fn finance_markets_task_get_advanced(
&self,
id: &str,
) -> DataForSeoApiResponse<SerpApiGoogleFinanceMarketsTaskAdvanced> {
self.client
.http_get(format!("/v3/serp/google/finance_markets/task_get/advanced/{id}").as_str())
.await
}
pub async fn finance_markets_task_get_html(
&self,
id: &str,
) -> DataForSeoApiResponse<SerpApiGoogleFinanceMarketsTaskHtml> {
self.client
.http_get(format!("/v3/serp/google/finance_markets/task_get/html/{id}").as_str())
.await
}
pub async fn finance_quote_task_post(
&self,
data: Vec<SerpApiGoogleFinanceQuoteTaskPostRequest>,
) -> DataForSeoApiResponse<Value> {
self.client
.http_post("/v3/serp/google/finance_quote/task_post", &data)
.await
}
pub async fn finance_quote_tasks_ready(&self) -> DataForSeoApiResponse<SerpApiTaskReadyResult> {
self.client
.serp()
.task_ready_se("google/finance_quote")
.await
}
pub async fn finance_quote_task_get_advanced(
&self,
id: &str,
) -> DataForSeoApiResponse<SerpApiGoogleFinanceQuoteTaskAdvanced> {
self.client
.http_get(format!("/v3/serp/google/finance_quote/task_get/advanced/{id}").as_str())
.await
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct SerpApiGoogleFinanceExploreTaskPostRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub location_name: Option<String>,
pub location_code: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_name: Option<String>,
pub language_code: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub device: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub news_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postback_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postback_data: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pingback_url: Option<String>,
}
impl SerpApiGoogleFinanceExploreTaskPostRequest {
pub fn new(language_code: String, location_code: i32) -> Self {
SerpApiGoogleFinanceExploreTaskPostRequest {
language_code,
location_code,
..SerpApiGoogleFinanceExploreTaskPostRequest::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct SerpApiGoogleFinanceTickerSearchTaskPostRequest {
pub keyword: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub location_name: Option<String>,
pub location_code: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_name: Option<String>,
pub language_code: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postback_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postback_data: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pingback_url: Option<String>,
}
impl SerpApiGoogleFinanceTickerSearchTaskPostRequest {
pub fn new(language_code: String, location_code: i32) -> Self {
SerpApiGoogleFinanceTickerSearchTaskPostRequest {
language_code,
location_code,
..SerpApiGoogleFinanceTickerSearchTaskPostRequest::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct SerpApiGoogleFinanceMarketsTaskPostRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub location_name: Option<String>,
pub location_code: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_name: Option<String>,
pub language_code: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub device: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub market_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postback_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postback_data: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pingback_url: Option<String>,
}
impl SerpApiGoogleFinanceMarketsTaskPostRequest {
pub fn new(language_code: String, location_code: i32) -> Self {
SerpApiGoogleFinanceMarketsTaskPostRequest {
language_code,
location_code,
..SerpApiGoogleFinanceMarketsTaskPostRequest::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct SerpApiGoogleFinanceQuoteTaskPostRequest {
pub keyword: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub location_name: Option<String>,
pub location_code: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_name: Option<String>,
pub language_code: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub device: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub window: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postback_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postback_data: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pingback_url: Option<String>,
}
impl SerpApiGoogleFinanceQuoteTaskPostRequest {
pub fn new(language_code: String, location_code: i32) -> Self {
SerpApiGoogleFinanceQuoteTaskPostRequest {
language_code,
location_code,
..SerpApiGoogleFinanceQuoteTaskPostRequest::default()
}
}
}