use crate::handlers::errors::ApiError; use crate::handlers::v1::ws::controllers::ControllerWs; use crate::types::ConnectedControllersType; use actix_web::{get, web, HttpRequest, HttpResponse}; use actix_web_actors::ws; use sqlx::{Pool, Sqlite}; use std::time::Instant; pub mod controllers; #[get("/api/v1/ws/controllers")] pub async fn ws_controllers( pool: web::Data<Pool<Sqlite>>, connected_controllers: web::Data<ConnectedControllersType>, req: HttpRequest, stream: web::Payload, ) -> Result<HttpResponse, ApiError> { let resp = ws::start( ControllerWs { pool: pool.get_ref().clone(), controller_uid: None, connected_controllers: connected_controllers.get_ref().clone(), hb: Instant::now(), }, &req, stream, ) .map_err(|_| ApiError::InternalError(String::from("error starting websocket"))); println!("{:?}", resp); resp }