Refactor the utils (remove them)
This commit is contained in:
		
							parent
							
								
									45409168d6
								
							
						
					
					
						commit
						e3f3f85ef5
					
				
					 4 changed files with 11 additions and 23 deletions
				
			
		| 
						 | 
				
			
			@ -20,7 +20,7 @@ pub async fn load_state_for_relay(relay: &mut Relay, app_state: &Addr<AppState>)
 | 
			
		|||
	Ok(())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub async fn load_state_for_relays(relays: &mut Vec<Relay>, app_state: &Addr<AppState>) -> Result<(), EmgauwaError>{
 | 
			
		||||
pub async fn load_state_for_relays(relays: &mut [Relay], app_state: &Addr<AppState>) -> Result<(), EmgauwaError>{
 | 
			
		||||
	let stated_relays = get_stated_relays(app_state).await?;
 | 
			
		||||
	relays.iter_mut().for_each(|r| r.find_and_apply_state(&stated_relays));
 | 
			
		||||
	Ok(())
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,20 +1,20 @@
 | 
			
		|||
mod handlers;
 | 
			
		||||
 | 
			
		||||
use std::time::Instant;
 | 
			
		||||
 | 
			
		||||
use actix::{Actor, ActorContext, Addr, AsyncContext, Handler, StreamHandler};
 | 
			
		||||
use actix_web_actors::ws;
 | 
			
		||||
use actix_web_actors::ws::ProtocolError;
 | 
			
		||||
use futures::executor::block_on;
 | 
			
		||||
use sqlx::{Pool, Sqlite};
 | 
			
		||||
use sqlx::pool::PoolConnection;
 | 
			
		||||
use ws::Message;
 | 
			
		||||
 | 
			
		||||
use emgauwa_common::constants::{HEARTBEAT_INTERVAL, HEARTBEAT_TIMEOUT};
 | 
			
		||||
use emgauwa_common::errors::EmgauwaError;
 | 
			
		||||
use emgauwa_common::types::{ControllerWsAction, EmgauwaUid};
 | 
			
		||||
use futures::executor::block_on;
 | 
			
		||||
use sqlx::pool::PoolConnection;
 | 
			
		||||
use sqlx::{Pool, Sqlite};
 | 
			
		||||
use ws::Message;
 | 
			
		||||
 | 
			
		||||
use crate::app_state::{AppState, DisconnectController};
 | 
			
		||||
use crate::utils::flatten_result;
 | 
			
		||||
 | 
			
		||||
mod handlers;
 | 
			
		||||
 | 
			
		||||
pub struct ControllersWs {
 | 
			
		||||
	pub pool: Pool<Sqlite>,
 | 
			
		||||
| 
						 | 
				
			
			@ -32,13 +32,9 @@ impl Actor for ControllersWs {
 | 
			
		|||
 | 
			
		||||
	fn stopped(&mut self, _ctx: &mut Self::Context) {
 | 
			
		||||
		if let Some(controller_uid) = &self.controller_uid {
 | 
			
		||||
			let flat_res = flatten_result(
 | 
			
		||||
				block_on(self.app_state.send(DisconnectController {
 | 
			
		||||
					controller_uid: controller_uid.clone(),
 | 
			
		||||
				}))
 | 
			
		||||
				.map_err(EmgauwaError::from),
 | 
			
		||||
			);
 | 
			
		||||
			if let Err(err) = flat_res {
 | 
			
		||||
			if let Err(err) = block_on(self.app_state.send(DisconnectController {
 | 
			
		||||
				controller_uid: controller_uid.clone(),
 | 
			
		||||
			})).unwrap_or_else(|err| Err(EmgauwaError::from(err))) {
 | 
			
		||||
				log::error!("Error disconnecting controller: {:?}", err);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,6 @@ use crate::app_state::AppState;
 | 
			
		|||
mod app_state;
 | 
			
		||||
mod handlers;
 | 
			
		||||
mod settings;
 | 
			
		||||
mod utils;
 | 
			
		||||
 | 
			
		||||
#[actix_web::main]
 | 
			
		||||
async fn main() -> Result<(), std::io::Error> {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +0,0 @@
 | 
			
		|||
pub fn flatten_result<T, E>(res: Result<Result<T, E>, E>) -> Result<T, E> {
 | 
			
		||||
	match res {
 | 
			
		||||
		Ok(Ok(t)) => Ok(t),
 | 
			
		||||
		Ok(Err(e)) => Err(e),
 | 
			
		||||
		Err(e) => Err(e),
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue