data_for_seo/api/domain_analytics/
mod.rs1use crate::entity::{DomainAnalyticsApiErrorItem, DomainAnalyticsApiIdList};
2use crate::{DataForSeoApiResponse, DataForSeoClient};
3use serde::{Deserialize, Serialize};
4
5mod technologies;
6mod whois;
7
8pub use technologies::*;
9pub use whois::*;
10
11pub struct DomainAnalyticsApi<'a> {
13 client: &'a DataForSeoClient,
14}
15
16impl DataForSeoClient {
17 pub fn domain_analytics(&self) -> DomainAnalyticsApi<'_> {
19 DomainAnalyticsApi { client: self }
20 }
21}
22
23impl DomainAnalyticsApi<'_> {
24 pub async fn id_list(
27 &self,
28 data: Vec<DomainAnalyticsApiIdListPost>,
29 ) -> DataForSeoApiResponse<DomainAnalyticsApiIdList> {
30 self.client
31 .http_post("/v3/domain_analytics/id_list", &data)
32 .await
33 }
34
35 pub async fn errors(
38 &self,
39 data: Vec<DomainAnalyticsApiErrorsPost>,
40 ) -> DataForSeoApiResponse<DomainAnalyticsApiErrorItem> {
41 self.client
42 .http_post("/v3/domain_analytics/errors", &data)
43 .await
44 }
45}
46
47#[derive(Debug, Default, Serialize, Deserialize, Clone)]
49pub struct DomainAnalyticsApiIdListPost {
50 pub datetime_from: String,
52 pub datetime_to: String,
54 #[serde(skip_serializing_if = "Option::is_none")]
56 pub limit: Option<i32>,
57 #[serde(skip_serializing_if = "Option::is_none")]
59 pub offset: Option<i32>,
60 #[serde(skip_serializing_if = "Option::is_none")]
62 pub sort: Option<String>,
63 #[serde(skip_serializing_if = "Option::is_none")]
65 pub include_metadata: Option<bool>,
66}
67
68impl DomainAnalyticsApiIdListPost {
69 pub fn new(datetime_from: String, datetime_to: String) -> DomainAnalyticsApiIdListPost {
71 DomainAnalyticsApiIdListPost {
72 datetime_from,
73 datetime_to,
74 ..Default::default()
75 }
76 }
77}
78
79#[derive(Debug, Default, Serialize, Deserialize, Clone)]
81pub struct DomainAnalyticsApiErrorsPost {
82 #[serde(skip_serializing_if = "Option::is_none")]
84 pub limit: Option<i32>,
85 #[serde(skip_serializing_if = "Option::is_none")]
87 pub offset: Option<i32>,
88 #[serde(skip_serializing_if = "Option::is_none")]
90 pub filtered_function: Option<String>,
91 #[serde(skip_serializing_if = "Option::is_none")]
93 pub datetime_from: Option<String>,
94 #[serde(skip_serializing_if = "Option::is_none")]
96 pub datetime_to: Option<String>,
97}
98
99impl DomainAnalyticsApiErrorsPost {
100 pub fn new() -> DomainAnalyticsApiErrorsPost {
102 DomainAnalyticsApiErrorsPost::default()
103 }
104}