data_for_seo/api/domain_analytics/
whois.rs1use crate::api::domain_analytics::DomainAnalyticsApi;
2use crate::entity::DomainAnalyticsApiWhoisOverview;
3use crate::{DataForSeoApiResponse, DataForSeoClient};
4use serde::{Deserialize, Serialize};
5use serde_json::Value;
6
7impl DomainAnalyticsApi<'_> {
8 pub fn whois(&self) -> DomainAnalyticsApiWhois<'_> {
10 DomainAnalyticsApiWhois {
11 client: self.client,
12 }
13 }
14}
15
16pub struct DomainAnalyticsApiWhois<'a> {
18 client: &'a DataForSeoClient,
19}
20
21impl DomainAnalyticsApiWhois<'_> {
22 pub async fn overview(
25 &self,
26 data: Vec<DomainAnalyticsApiWhoisOverviewPost>,
27 ) -> DataForSeoApiResponse<DomainAnalyticsApiWhoisOverview> {
28 self.client
29 .http_post("/v3/domain_analytics/whois/overview/live", &data)
30 .await
31 }
32}
33
34#[derive(Debug, Default, Serialize, Deserialize, Clone)]
36pub struct DomainAnalyticsApiWhoisOverviewPost {
37 #[serde(skip_serializing_if = "Option::is_none")]
39 pub limit: Option<i32>,
40 #[serde(skip_serializing_if = "Option::is_none")]
42 pub offset: Option<i32>,
43 #[serde(skip_serializing_if = "Option::is_none")]
45 pub offset_token: Option<String>,
46 #[serde(skip_serializing_if = "Option::is_none")]
48 pub filters: Option<Vec<Value>>,
49 #[serde(skip_serializing_if = "Option::is_none")]
51 pub order_by: Option<Vec<String>>,
52 #[serde(skip_serializing_if = "Option::is_none")]
54 pub tag: Option<String>,
55}
56
57impl DomainAnalyticsApiWhoisOverviewPost {
58 pub fn new() -> DomainAnalyticsApiWhoisOverviewPost {
60 DomainAnalyticsApiWhoisOverviewPost::default()
61 }
62}