unifly_api/controller/session_queries/
stats.rs1use crate::controller::Controller;
2use crate::controller::support::require_session;
3use crate::core_error::CoreError;
4
5impl Controller {
6 pub async fn get_site_stats(
7 &self,
8 interval: &str,
9 start: Option<i64>,
10 end: Option<i64>,
11 attrs: Option<&[String]>,
12 ) -> Result<Vec<serde_json::Value>, CoreError> {
13 let guard = self.inner.session_client.lock().await;
14 let session = require_session(guard.as_ref())?;
15 Ok(session.get_site_stats(interval, start, end, attrs).await?)
16 }
17
18 pub async fn get_device_stats(
19 &self,
20 interval: &str,
21 macs: Option<&[String]>,
22 attrs: Option<&[String]>,
23 ) -> Result<Vec<serde_json::Value>, CoreError> {
24 let guard = self.inner.session_client.lock().await;
25 let session = require_session(guard.as_ref())?;
26 Ok(session.get_device_stats(interval, macs, attrs).await?)
27 }
28
29 pub async fn get_client_stats(
30 &self,
31 interval: &str,
32 macs: Option<&[String]>,
33 attrs: Option<&[String]>,
34 ) -> Result<Vec<serde_json::Value>, CoreError> {
35 let guard = self.inner.session_client.lock().await;
36 let session = require_session(guard.as_ref())?;
37 Ok(session.get_client_stats(interval, macs, attrs).await?)
38 }
39
40 pub async fn get_gateway_stats(
41 &self,
42 interval: &str,
43 start: Option<i64>,
44 end: Option<i64>,
45 attrs: Option<&[String]>,
46 ) -> Result<Vec<serde_json::Value>, CoreError> {
47 let guard = self.inner.session_client.lock().await;
48 let session = require_session(guard.as_ref())?;
49 Ok(session
50 .get_gateway_stats(interval, start, end, attrs)
51 .await?)
52 }
53
54 pub async fn get_dpi_stats(
55 &self,
56 group_by: &str,
57 macs: Option<&[String]>,
58 ) -> Result<Vec<serde_json::Value>, CoreError> {
59 let guard = self.inner.session_client.lock().await;
60 let session = require_session(guard.as_ref())?;
61 Ok(session.get_dpi_stats(group_by, macs).await?)
62 }
63}