use crate::api::business_data::BusinessDataApi;
use crate::entity::{
BusinessDataApiTaskReady, BusinessDataApiTripadvisorReviewsResult,
BusinessDataApiTripadvisorReviewsTaskPost, BusinessDataApiTripadvisorSearchResult,
BusinessDataApiTripadvisorSearchTaskPost, SerpApiLanguage,
};
use crate::{DataForSeoApiResponse, DataForSeoClient, SerpApiLocation};
use serde_json::Value;
impl BusinessDataApi<'_> {
pub fn tripadvisor(&self) -> BusinessDataApiTripadvisor<'_> {
BusinessDataApiTripadvisor {
client: self.client,
}
}
}
pub struct BusinessDataApiTripadvisor<'a> {
client: &'a DataForSeoClient,
}
impl BusinessDataApiTripadvisor<'_> {
pub async fn locations(&self) -> DataForSeoApiResponse<SerpApiLocation> {
self.client
.http_get("/v3/business_data/tripadvisor/locations")
.await
}
pub async fn languages(&self) -> DataForSeoApiResponse<SerpApiLanguage> {
self.client
.http_get("/v3/business_data/tripadvisor/languages")
.await
}
pub async fn search_task_post(
&self,
data: Vec<BusinessDataApiTripadvisorSearchTaskPost>,
) -> DataForSeoApiResponse<Value> {
self.client
.http_post("/v3/business_data/tripadvisor/search/task_post", &data)
.await
}
pub async fn search_tasks_ready(&self) -> DataForSeoApiResponse<BusinessDataApiTaskReady> {
self.client
.http_get("/v3/business_data/tripadvisor/search/tasks_ready")
.await
}
pub async fn search_task_get(
&self,
id: &str,
) -> DataForSeoApiResponse<BusinessDataApiTripadvisorSearchResult> {
self.client
.http_get(&format!(
"/v3/business_data/tripadvisor/search/task_get/{id}"
))
.await
}
pub async fn reviews_task_post(
&self,
data: Vec<BusinessDataApiTripadvisorReviewsTaskPost>,
) -> DataForSeoApiResponse<Value> {
self.client
.http_post("/v3/business_data/tripadvisor/reviews/task_post", &data)
.await
}
pub async fn reviews_tasks_ready(&self) -> DataForSeoApiResponse<BusinessDataApiTaskReady> {
self.client
.http_get("/v3/business_data/tripadvisor/reviews/tasks_ready")
.await
}
pub async fn reviews_task_get(
&self,
id: &str,
) -> DataForSeoApiResponse<BusinessDataApiTripadvisorReviewsResult> {
self.client
.http_get(&format!(
"/v3/business_data/tripadvisor/reviews/task_get/{id}"
))
.await
}
}