Add log-init-function and websocket retry

This commit is contained in:
Tobias Reisinger 2023-11-29 01:03:04 +01:00
parent 6536ff0792
commit 50bcac2a1b
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
12 changed files with 73 additions and 69 deletions

View file

@ -14,13 +14,14 @@ serde = "1.0"
serde_json = "1.0"
serde_derive = "1.0"
simple_logger = "4.2"
log = "0.4"
config = "0.13"
chrono = { version = "0.4", features = ["serde"] }
sqlx = { version = "0.7", features = ["sqlite", "runtime-tokio", "macros", "chrono"] }
libsqlite3-sys = { version = "*", features = ["bundled"] }
log = "0.4"
uuid = "1.6"
futures = "0.3"

View file

@ -3,3 +3,5 @@ use std::time::Duration;
pub const DEFAULT_PORT: u16 = 4419;
pub const HEARTBEAT_INTERVAL: Duration = Duration::from_secs(5);
pub const HEARTBEAT_TIMEOUT: Duration = Duration::from_secs(15);
pub const WEBSOCKET_RETRY_TIMEOUT: Duration = Duration::from_secs(5);

View file

@ -9,18 +9,12 @@ use crate::models::{convert_db_list, Controller};
use crate::types::ConnectedControllersType;
#[get("/api/v1/controllers")]
pub async fn index(
pool: web::Data<Pool<Sqlite>>,
connected_controllers: web::Data<ConnectedControllersType>,
) -> Result<HttpResponse, ApiError> {
pub async fn index(pool: web::Data<Pool<Sqlite>>) -> Result<HttpResponse, ApiError> {
let mut pool_conn = pool.acquire().await?;
let db_controllers = DbController::get_all(&mut pool_conn).await?;
let controllers: Vec<Controller> = convert_db_list(&mut pool_conn, db_controllers)?;
let data = connected_controllers.lock().unwrap();
println!("{:?}", *data);
Ok(HttpResponse::Ok().json(controllers))
}

View file

@ -26,6 +26,5 @@ pub async fn ws_controllers(
stream,
)
.map_err(|_| ApiError::InternalError(String::from("error starting websocket")));
println!("{:?}", resp);
resp
}

View file

@ -17,14 +17,14 @@ pub trait FromDbModel {
Self: Sized;
}
#[derive(Serialize, Deserialize, Debug)]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Schedule {
#[serde(flatten)]
pub s: DbSchedule,
pub tags: Vec<String>,
}
#[derive(Serialize, Deserialize, Debug)]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Relay {
#[serde(flatten)]
pub r: DbRelay,
@ -33,7 +33,7 @@ pub struct Relay {
pub tags: Vec<String>,
}
#[derive(Serialize, Deserialize, Debug)]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Controller {
#[serde(flatten)]
pub c: DbController,

View file

@ -1,3 +1,7 @@
use log::LevelFilter;
use simple_logger::SimpleLogger;
use std::str::FromStr;
pub fn load_settings<T>(config_name: &str, env_prefix: &str) -> T
where
for<'de> T: serde::Deserialize<'de>,
@ -16,3 +20,13 @@ where
.try_deserialize::<T>()
.expect("Error reading settings")
}
pub fn init_logging(level: &str) {
let log_level: LevelFilter = LevelFilter::from_str(level).expect("Error parsing log level.");
log::trace!("Log level set to {:?}", log_level);
SimpleLogger::new()
.with_level(log_level)
.init()
.expect("Error initializing logger.");
}