From 00c6f1758e4e2ff12b0bae7de0fcafd28747fbb3 Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Sun, 11 Dec 2022 21:08:34 +0000 Subject: [PATCH] Migrate RoomMessageRequestHandler. --- client/src/handlers/mod.rs | 2 - .../handlers/room_message_request_handler.rs | 74 ------------------- client/src/room/event.rs | 48 +++++++++++- 3 files changed, 46 insertions(+), 78 deletions(-) delete mode 100644 client/src/handlers/room_message_request_handler.rs diff --git a/client/src/handlers/mod.rs b/client/src/handlers/mod.rs index c6acb89..762bd38 100644 --- a/client/src/handlers/mod.rs +++ b/client/src/handlers/mod.rs @@ -2,7 +2,6 @@ mod login_status_request_handler; mod peer_address_response_handler; mod peer_connect_request_handler; mod privileged_users_response_handler; -mod room_message_request_handler; mod room_message_response_handler; mod user_list_request_handler; @@ -10,6 +9,5 @@ pub use login_status_request_handler::LoginStatusRequestHandler; pub use peer_address_response_handler::PeerAddressResponseHandler; pub use peer_connect_request_handler::PeerConnectRequestHandler; pub use privileged_users_response_handler::PrivilegedUsersResponseHandler; -pub use room_message_request_handler::RoomMessageRequestHandler; pub use room_message_response_handler::RoomMessageResponseHandler; pub use user_list_request_handler::UserListRequestHandler; diff --git a/client/src/handlers/room_message_request_handler.rs b/client/src/handlers/room_message_request_handler.rs deleted file mode 100644 index 0324412..0000000 --- a/client/src/handlers/room_message_request_handler.rs +++ /dev/null @@ -1,74 +0,0 @@ -use anyhow::Context as AnyhowContext; -use solstice_proto::server; -use solstice_proto::ServerRequest; - -use crate::context::Context; -use crate::control; -use crate::message_handler::MessageHandler; - -#[derive(Debug, Default)] -pub struct RoomMessageRequestHandler; - -impl MessageHandler for RoomMessageRequestHandler { - type Message = control::RoomMessageRequest; - - fn run( - self, - context: &mut Context, - message: &control::RoomMessageRequest, - ) -> anyhow::Result<()> { - // TODO: Add message to room. - context - .server_request_tx - .blocking_send(ServerRequest::RoomMessageRequest( - server::RoomMessageRequest { - room_name: message.room_name.clone(), - message: message.message.clone(), - }, - )) - .context("sending server request")?; - Ok(()) - } - - fn name() -> String { - "RoomMessageRequestHandler".to_string() - } -} - -#[cfg(test)] -mod tests { - use solstice_proto::server; - use solstice_proto::ServerRequest; - - use crate::context::ContextBundle; - use crate::control; - use crate::message_handler::MessageHandler; - - use super::RoomMessageRequestHandler; - - #[test] - fn run_forwards_request() { - let mut bundle = ContextBundle::default(); - - RoomMessageRequestHandler::default() - .run( - &mut bundle.context, - &control::RoomMessageRequest { - room_name: "bleep".to_string(), - message: "yo!".to_string(), - } - .into(), - ) - .unwrap(); - - let request = bundle.server_request_rx.blocking_recv().unwrap(); - - assert_eq!( - request, - ServerRequest::RoomMessageRequest(server::RoomMessageRequest { - room_name: "bleep".to_string(), - message: "yo!".to_string(), - }) - ); - } -} diff --git a/client/src/room/event.rs b/client/src/room/event.rs index 522a2d7..644fe5a 100644 --- a/client/src/room/event.rs +++ b/client/src/room/event.rs @@ -7,7 +7,7 @@ use solstice_proto::ServerRequest; use crate::context::Context; use crate::control; -use crate::handlers::{RoomMessageRequestHandler, RoomMessageResponseHandler}; +use crate::handlers::RoomMessageResponseHandler; use crate::message_handler::MessageHandler; /// An event affecting the chat room module. @@ -124,6 +124,22 @@ fn handle_list_response( .context("sending control response") } +fn handle_message_request( + context: &mut Context, + message: control::RoomMessageRequest, +) -> anyhow::Result<()> { + // TODO: Add message to room. + context + .server_request_tx + .blocking_send(ServerRequest::RoomMessageRequest( + server::RoomMessageRequest { + room_name: message.room_name, + message: message.message, + }, + )) + .context("sending server request") +} + impl HandleRoomEvent for RoomEventHandler { fn handle( &mut self, @@ -143,7 +159,7 @@ impl HandleRoomEvent for RoomEventHandler { handle_list_response(context, response) } RoomEvent::MessageRequest(request) => { - RoomMessageRequestHandler::default().run(context, &request) + handle_message_request(context, request) } RoomEvent::MessageResponse(response) => { RoomMessageResponseHandler::default().run(context, &response) @@ -425,4 +441,32 @@ mod tests { ] ); } + + #[test] + fn handle_message_request_forwards_request() { + let mut bundle = ContextBundle::default(); + + RoomEventHandler + .handle( + &mut bundle.context, + RoomEvent::MessageRequest(control::RoomMessageRequest { + room_name: "bleep".to_string(), + message: "yo!".to_string(), + }), + ) + .expect("handling request"); + + let request = bundle + .server_request_rx + .blocking_recv() + .expect("receiving request"); + + assert_eq!( + request, + ServerRequest::RoomMessageRequest(server::RoomMessageRequest { + room_name: "bleep".to_string(), + message: "yo!".to_string(), + }) + ); + } }