Add WIP websocket to controller and refactor settings
This commit is contained in:
		
							parent
							
								
									452454f9e8
								
							
						
					
					
						commit
						32c75ad73a
					
				
					 11 changed files with 128 additions and 37 deletions
				
			
		| 
						 | 
				
			
			@ -14,6 +14,8 @@ serde = "1.0"
 | 
			
		|||
serde_json = "1.0"
 | 
			
		||||
serde_derive = "1.0"
 | 
			
		||||
 | 
			
		||||
config = "0.13"
 | 
			
		||||
 | 
			
		||||
chrono = { version = "0.4", features = ["serde"] }
 | 
			
		||||
 | 
			
		||||
sqlx = { version = "0.7", features = ["sqlite", "runtime-async-std", "macros", "chrono"] }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,7 @@ impl StreamHandler<Result<Message, ProtocolError>> for ControllerWs {
 | 
			
		|||
	fn handle(&mut self, msg: Result<Message, ProtocolError>, ctx: &mut Self::Context) {
 | 
			
		||||
		let schedules = futures::executor::block_on(get_schedules(&mut self.pool)).unwrap();
 | 
			
		||||
		let schedules_json = serde_json::to_string(&schedules).unwrap();
 | 
			
		||||
		println!("{:?}", msg);
 | 
			
		||||
		match msg {
 | 
			
		||||
			Ok(Message::Ping(msg)) => ctx.pong(&msg),
 | 
			
		||||
			Ok(Message::Text(_text)) => ctx.text(schedules_json),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,23 @@
 | 
			
		|||
pub fn vec_has_error<T, E>(target: &[Result<T, E>]) -> bool {
 | 
			
		||||
	target.iter().any(|t| t.is_err())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub fn load_settings<T>(config_name: &str, env_prefix: &str) -> T
 | 
			
		||||
where
 | 
			
		||||
	for<'de> T: serde::Deserialize<'de>
 | 
			
		||||
{
 | 
			
		||||
	let default_file = config::File::with_name(&format!("emgauwa-{}", config_name))
 | 
			
		||||
		.required(false);
 | 
			
		||||
 | 
			
		||||
	config::Config::builder()
 | 
			
		||||
		.add_source(default_file)
 | 
			
		||||
		.add_source(
 | 
			
		||||
			config::Environment::with_prefix(&format!("EMGAUWA_{}", env_prefix))
 | 
			
		||||
				.prefix_separator("__")
 | 
			
		||||
				.separator("__"),
 | 
			
		||||
		)
 | 
			
		||||
		.build()
 | 
			
		||||
		.expect("Error building settings")
 | 
			
		||||
		.try_deserialize::<T>()
 | 
			
		||||
		.expect("Error reading settings")
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue