unifly_api/controller/session_queries/
wifi.rs1use crate::controller::Controller;
2use crate::controller::support::require_session;
3use crate::core_error::CoreError;
4use crate::session::models::{ChannelAvailability, RogueAp};
5
6impl Controller {
7 pub async fn list_rogue_aps(
8 &self,
9 within_secs: Option<i64>,
10 ) -> Result<Vec<RogueAp>, CoreError> {
11 let guard = self.inner.session_client.lock().await;
12 let session = require_session(guard.as_ref())?;
13 Ok(session.list_rogue_aps(within_secs).await?)
14 }
15
16 pub async fn list_channels(&self) -> Result<Vec<ChannelAvailability>, CoreError> {
17 let guard = self.inner.session_client.lock().await;
18 let session = require_session(guard.as_ref())?;
19 Ok(session.list_channels().await?)
20 }
21
22 pub async fn get_client_roams(
23 &self,
24 mac: &str,
25 limit: Option<u32>,
26 ) -> Result<Vec<serde_json::Value>, CoreError> {
27 let guard = self.inner.session_client.lock().await;
28 let session = require_session(guard.as_ref())?;
29 Ok(session.get_client_roams(mac, limit).await?)
30 }
31
32 pub async fn get_client_wifi_experience(
33 &self,
34 client_ip: &str,
35 ) -> Result<serde_json::Value, CoreError> {
36 let guard = self.inner.session_client.lock().await;
37 let session = require_session(guard.as_ref())?;
38 Ok(session.get_client_wifi_experience(client_ip).await?)
39 }
40}