Skip to main content

unifly_api/controller/session_queries/
wifi.rs

1use 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}