Add junction between relays and schedules
This commit is contained in:
		
							parent
							
								
									a90ea25b87
								
							
						
					
					
						commit
						2f51ebf91e
					
				
					 10 changed files with 209 additions and 53 deletions
				
			
		| 
						 | 
				
			
			@ -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.");
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue