use crate::entity::{DomainAnalyticsApiErrorItem, DomainAnalyticsApiIdList};
use crate::{DataForSeoApiResponse, DataForSeoClient};
use serde::{Deserialize, Serialize};
mod technologies;
mod whois;
pub use technologies::*;
pub use whois::*;
pub struct DomainAnalyticsApi<'a> {
client: &'a DataForSeoClient,
}
impl DataForSeoClient {
pub fn domain_analytics(&self) -> DomainAnalyticsApi<'_> {
DomainAnalyticsApi { client: self }
}
}
impl DomainAnalyticsApi<'_> {
pub async fn id_list(
&self,
data: Vec<DomainAnalyticsApiIdListPost>,
) -> DataForSeoApiResponse<DomainAnalyticsApiIdList> {
self.client
.http_post("/v3/domain_analytics/id_list", &data)
.await
}
pub async fn errors(
&self,
data: Vec<DomainAnalyticsApiErrorsPost>,
) -> DataForSeoApiResponse<DomainAnalyticsApiErrorItem> {
self.client
.http_post("/v3/domain_analytics/errors", &data)
.await
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DomainAnalyticsApiIdListPost {
pub datetime_from: String,
pub datetime_to: String,
#[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 sort: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_metadata: Option<bool>,
}
impl DomainAnalyticsApiIdListPost {
pub fn new(datetime_from: String, datetime_to: String) -> DomainAnalyticsApiIdListPost {
DomainAnalyticsApiIdListPost {
datetime_from,
datetime_to,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DomainAnalyticsApiErrorsPost {
#[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 filtered_function: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub datetime_from: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub datetime_to: Option<String>,
}
impl DomainAnalyticsApiErrorsPost {
pub fn new() -> DomainAnalyticsApiErrorsPost {
DomainAnalyticsApiErrorsPost::default()
}
}