Add junction between relays and schedules

This commit is contained in:
Tobias Reisinger 2023-11-30 00:57:03 +01:00
parent a90ea25b87
commit 2f51ebf91e
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
10 changed files with 209 additions and 53 deletions
emgauwa-controller/src

View file

@ -1,5 +1,6 @@
use emgauwa_lib::constants::WEBSOCKET_RETRY_TIMEOUT;
use emgauwa_lib::db::{DbController, DbRelay};
use emgauwa_lib::db::errors::DatabaseError;
use emgauwa_lib::db::{DbController, DbJunctionRelaySchedule, DbRelay, DbSchedule};
use emgauwa_lib::models::{Controller, FromDbModel};
use emgauwa_lib::types::{ControllerUid, ControllerWsAction};
use emgauwa_lib::{db, utils};
@ -37,15 +38,21 @@ async fn create_this_relay(
conn: &mut PoolConnection<Sqlite>,
this_controller: &DbController,
settings_relay: &settings::Relay,
) -> DbRelay {
DbRelay::create(
) -> Result<DbRelay, DatabaseError> {
let relay = DbRelay::create(
conn,
&settings_relay.name,
settings_relay.number.unwrap(),
this_controller,
)
.await
.expect("Failed to create relay")
.await?;
let off = DbSchedule::get_off(conn).await?;
for weekday in 0..7 {
DbJunctionRelaySchedule::set_schedule(conn, &relay, &off, weekday).await?;
}
Ok(relay)
}
#[tokio::main]
@ -71,7 +78,9 @@ async fn main() {
.expect("Failed to get relay from database")
.is_none()
{
create_this_relay(&mut conn, &db_controller, relay).await;
create_this_relay(&mut conn, &db_controller, relay)
.await
.expect("Failed to create schedule.");
}
}