use crate::controller::Controller;
use crate::controller::support::require_session;
use crate::core_error::CoreError;
impl Controller {
pub async fn get_site_stats(
&self,
interval: &str,
start: Option<i64>,
end: Option<i64>,
attrs: Option<&[String]>,
) -> Result<Vec<serde_json::Value>, CoreError> {
let guard = self.inner.session_client.lock().await;
let session = require_session(guard.as_ref())?;
Ok(session.get_site_stats(interval, start, end, attrs).await?)
}
pub async fn get_device_stats(
&self,
interval: &str,
macs: Option<&[String]>,
attrs: Option<&[String]>,
) -> Result<Vec<serde_json::Value>, CoreError> {
let guard = self.inner.session_client.lock().await;
let session = require_session(guard.as_ref())?;
Ok(session.get_device_stats(interval, macs, attrs).await?)
}
pub async fn get_client_stats(
&self,
interval: &str,
macs: Option<&[String]>,
attrs: Option<&[String]>,
) -> Result<Vec<serde_json::Value>, CoreError> {
let guard = self.inner.session_client.lock().await;
let session = require_session(guard.as_ref())?;
Ok(session.get_client_stats(interval, macs, attrs).await?)
}
pub async fn get_gateway_stats(
&self,
interval: &str,
start: Option<i64>,
end: Option<i64>,
attrs: Option<&[String]>,
) -> Result<Vec<serde_json::Value>, CoreError> {
let guard = self.inner.session_client.lock().await;
let session = require_session(guard.as_ref())?;
Ok(session
.get_gateway_stats(interval, start, end, attrs)
.await?)
}
pub async fn get_dpi_stats(
&self,
group_by: &str,
macs: Option<&[String]>,
) -> Result<Vec<serde_json::Value>, CoreError> {
let guard = self.inner.session_client.lock().await;
let session = require_session(guard.as_ref())?;
Ok(session.get_dpi_stats(group_by, macs).await?)
}
}