This commit is contained in:
2024-12-30 17:22:16 -05:00
parent 10e80a0c2d
commit c7ca250b66
20 changed files with 529 additions and 472 deletions

34
server/src/http/mod.rs Normal file
View File

@@ -0,0 +1,34 @@
mod api;
mod error;
mod websocket;
use crate::http::api::setup_api;
use crate::http::websocket::setup_websocket;
use crate::telemetry::management_service::TelemetryManagementService;
use actix_web::{web, App, HttpServer};
use log::trace;
use std::error::Error;
use std::sync::Arc;
use tokio_util::sync::CancellationToken;
pub async fn setup(
cancellation_token: CancellationToken,
telemetry_definitions: Arc<TelemetryManagementService>,
) -> Result<(), Box<dyn Error>> {
let data = web::Data::new(telemetry_definitions);
let cancel_token = web::Data::new(cancellation_token);
trace!("Starting HTTP Server");
HttpServer::new(move || {
App::new()
.app_data(data.clone())
.app_data(cancel_token.clone())
.service(web::scope("/ws").configure(setup_websocket))
.service(web::scope("/api").configure(setup_api))
})
.bind("localhost:8080")?
.run()
.await?;
Ok(())
}