chore: moved to only one message
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
390b30d084
commit
99e8a25686
@ -308,7 +308,7 @@ pub async fn stop_animation(name: &str, stop_sender: &State<ASender<String>>) ->
|
||||
#[get("/start/<name>")]
|
||||
pub async fn start_animation(
|
||||
name: &str,
|
||||
start_sender: &State<ASender<Animation>>,
|
||||
action: &State<ASender<Action>>,
|
||||
db: &State<DBPool>,
|
||||
) -> String {
|
||||
println!("try to get animation!");
|
||||
@ -335,7 +335,7 @@ pub async fn start_animation(
|
||||
|
||||
let animation = animation.unwrap();
|
||||
|
||||
let r = start_sender.lock().unwrap().send(animation);
|
||||
let r = action.lock().unwrap().send(Action::Start(animation));
|
||||
if r.is_err() || r.as_ref().ok().is_none() {
|
||||
return json!(ApiResponse {
|
||||
code: 500,
|
||||
@ -658,10 +658,8 @@ fn get_error_message(message: &str) -> String {
|
||||
#[get("/toggle/<name>")]
|
||||
pub async fn toggle_animation(
|
||||
name: &str,
|
||||
start_sender: &State<ASender<Animation>>,
|
||||
action: &State<ASender<Action>>,
|
||||
messages: &State<AReceiver<RenderMessage>>,
|
||||
stop_sender: &State<ASender<String>>,
|
||||
db: &State<DBPool>,
|
||||
) -> String {
|
||||
let animation = get_animation_or_string_error(name, db);
|
||||
@ -670,7 +668,9 @@ pub async fn toggle_animation(
|
||||
}
|
||||
let animation = animation.unwrap();
|
||||
|
||||
let send = action.lock().unwrap().send(Action::GetActiveList);
|
||||
let action = action.lock().unwrap();
|
||||
|
||||
let send = action.send(Action::GetActiveList);
|
||||
if send.is_err() || send.ok().is_none() {
|
||||
return get_error_message("Failed to get list");
|
||||
}
|
||||
@ -683,7 +683,7 @@ pub async fn toggle_animation(
|
||||
if let RenderMessage::ActiveList(list) = data.ok().unwrap() {
|
||||
if list.contains(&name.to_string()) {
|
||||
// Disable
|
||||
let r = stop_sender.lock().unwrap().send(name.to_string());
|
||||
let r = action.send(Action::Stop(name.to_string()));
|
||||
|
||||
if r.is_err() || r.ok().is_none() {
|
||||
return get_error_message("Something went wrong");
|
||||
@ -692,7 +692,7 @@ pub async fn toggle_animation(
|
||||
return create_message(200, "Configuration was successful");
|
||||
} else {
|
||||
// Enable
|
||||
let r = start_sender.lock().unwrap().send(animation);
|
||||
let r = action.send(Action::Start(animation));
|
||||
if r.is_err() || r.as_ref().ok().is_none() {
|
||||
return get_error_message("Probelms with the sender");
|
||||
}
|
||||
|
45
src/main.rs
45
src/main.rs
@ -39,9 +39,11 @@ fn index() -> &'static str {
|
||||
|
||||
pub enum Action {
|
||||
Reload,
|
||||
Stop,
|
||||
Exit,
|
||||
Clear,
|
||||
GetActiveList,
|
||||
Start(Animation),
|
||||
Stop(String),
|
||||
}
|
||||
|
||||
pub enum RenderMessage {
|
||||
@ -54,7 +56,7 @@ pub enum RenderMessage {
|
||||
async fn quit(shutdown: rocket::Shutdown, action: &State<ASender<Action>>) -> String {
|
||||
println!("Got Shutdown");
|
||||
|
||||
let send = action.lock().unwrap().send(Action::Stop);
|
||||
let send = action.lock().unwrap().send(Action::Exit);
|
||||
|
||||
if send.is_err() || send.ok().is_none() {
|
||||
return json!(ApiResponse {
|
||||
@ -97,8 +99,6 @@ async fn reload(action: &State<ASender<Action>>) -> String {
|
||||
fn ligth_controll(
|
||||
pool: DBPool,
|
||||
action: Receiver<Action>,
|
||||
start_ani: Receiver<Animation>,
|
||||
stop_ani: Receiver<String>,
|
||||
message_server: Sender<RenderMessage>,
|
||||
) {
|
||||
println!("Data loop started");
|
||||
@ -115,8 +115,8 @@ fn ligth_controll(
|
||||
'mainloop: loop {
|
||||
let action = action.try_recv();
|
||||
|
||||
if action.is_ok() {
|
||||
match action.ok().unwrap() {
|
||||
if let Ok(action) = action {
|
||||
match action {
|
||||
Action::Reload => {
|
||||
let result = render.load_config();
|
||||
if result.is_err() || result.as_ref().ok().is_none() {
|
||||
@ -126,7 +126,7 @@ fn ligth_controll(
|
||||
Action::Clear => {
|
||||
render.blank();
|
||||
}
|
||||
Action::Stop => {
|
||||
Action::Exit => {
|
||||
render.blank();
|
||||
render.im_render();
|
||||
break 'mainloop;
|
||||
@ -139,24 +139,15 @@ fn ligth_controll(
|
||||
println!("Failed to send message ups");
|
||||
}
|
||||
}
|
||||
Action::Start(animation) => {
|
||||
render.add_animation(animation);
|
||||
}
|
||||
Action::Stop(animation) => {
|
||||
render.remove_animation(animation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let ani = start_ani.try_recv();
|
||||
|
||||
if ani.is_ok() {
|
||||
println!("Added animation");
|
||||
//TODO
|
||||
render.add_animation(ani.ok().unwrap());
|
||||
//ani.ok().unwrap().
|
||||
}
|
||||
|
||||
let ani = stop_ani.try_recv();
|
||||
|
||||
if ani.is_ok() {
|
||||
render.remove_animation(ani.ok().unwrap());
|
||||
}
|
||||
|
||||
render.render();
|
||||
}
|
||||
|
||||
@ -180,12 +171,6 @@ async fn main() -> GResult {
|
||||
}
|
||||
|
||||
let (action_sender, action_receiver): (Sender<Action>, Receiver<Action>) = mpsc::channel();
|
||||
let (start_animation_sender, start_animation_receiver): (
|
||||
Sender<Animation>,
|
||||
Receiver<Animation>,
|
||||
) = mpsc::channel();
|
||||
let (stop_animation_sender, stop_animation_receiver): (Sender<String>, Receiver<String>) =
|
||||
mpsc::channel();
|
||||
|
||||
let (messager_sender, messager_revicer): (Sender<RenderMessage>, Receiver<RenderMessage>) =
|
||||
mpsc::channel();
|
||||
@ -196,8 +181,6 @@ async fn main() -> GResult {
|
||||
ligth_controll(
|
||||
pool_clone,
|
||||
action_receiver,
|
||||
start_animation_receiver,
|
||||
stop_animation_receiver,
|
||||
messager_sender,
|
||||
);
|
||||
});
|
||||
@ -227,8 +210,6 @@ async fn main() -> GResult {
|
||||
)
|
||||
.manage(conn_pool_arc.clone())
|
||||
.manage(Arc::new(Mutex::new(action_sender)))
|
||||
.manage(Arc::new(Mutex::new(start_animation_sender)))
|
||||
.manage(Arc::new(Mutex::new(stop_animation_sender)))
|
||||
.manage(Arc::new(Mutex::new(messager_revicer)))
|
||||
.launch()
|
||||
.await?;
|
||||
|
Loading…
Reference in New Issue
Block a user