use crate::api::domain_analytics::DomainAnalyticsApi;
use crate::entity::DomainAnalyticsApiWhoisOverview;
use crate::{DataForSeoApiResponse, DataForSeoClient};
use serde::{Deserialize, Serialize};
use serde_json::Value;
impl DomainAnalyticsApi<'_> {
pub fn whois(&self) -> DomainAnalyticsApiWhois<'_> {
DomainAnalyticsApiWhois {
client: self.client,
}
}
}
pub struct DomainAnalyticsApiWhois<'a> {
client: &'a DataForSeoClient,
}
impl DomainAnalyticsApiWhois<'_> {
pub async fn overview(
&self,
data: Vec<DomainAnalyticsApiWhoisOverviewPost>,
) -> DataForSeoApiResponse<DomainAnalyticsApiWhoisOverview> {
self.client
.http_post("/v3/domain_analytics/whois/overview/live", &data)
.await
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DomainAnalyticsApiWhoisOverviewPost {
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub order_by: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl DomainAnalyticsApiWhoisOverviewPost {
pub fn new() -> DomainAnalyticsApiWhoisOverviewPost {
DomainAnalyticsApiWhoisOverviewPost::default()
}
}