use crate::api::business_data::BusinessDataApi;
use crate::entity::{
BusinessDataApiBusinessListingsCategory, BusinessDataApiBusinessListingsLocation,
BusinessDataApiBusinessListingsSearchRequest, BusinessDataApiBusinessListingsSearchResult,
BusinessDataApiCategoriesAggregationRequest, BusinessDataApiCategoriesAggregationResult,
};
use crate::{DataForSeoApiResponse, DataForSeoClient};
impl BusinessDataApi<'_> {
pub fn business_listings(&self) -> BusinessDataApiBusinessListings<'_> {
BusinessDataApiBusinessListings {
client: self.client,
}
}
}
pub struct BusinessDataApiBusinessListings<'a> {
client: &'a DataForSeoClient,
}
impl BusinessDataApiBusinessListings<'_> {
pub async fn locations(
&self,
) -> DataForSeoApiResponse<BusinessDataApiBusinessListingsLocation> {
self.client
.http_get("/v3/business_data/business_listings/locations")
.await
}
pub async fn categories(
&self,
) -> DataForSeoApiResponse<BusinessDataApiBusinessListingsCategory> {
self.client
.http_get("/v3/business_data/business_listings/categories")
.await
}
pub async fn search_live(
&self,
data: Vec<BusinessDataApiBusinessListingsSearchRequest>,
) -> DataForSeoApiResponse<BusinessDataApiBusinessListingsSearchResult> {
self.client
.http_post("/v3/business_data/business_listings/search/live", &data)
.await
}
pub async fn categories_aggregation_live(
&self,
data: Vec<BusinessDataApiCategoriesAggregationRequest>,
) -> DataForSeoApiResponse<BusinessDataApiCategoriesAggregationResult> {
self.client
.http_post(
"/v3/business_data/business_listings/categories_aggregation/live",
&data,
)
.await
}
}