|
|
@ -7,7 +7,7 @@ use solstice_proto::ServerRequest; |
|
|
|
|
|
|
|
|
use crate::context::Context;
|
|
|
use crate::context::Context;
|
|
|
use crate::control;
|
|
|
use crate::control;
|
|
|
use crate::handlers::{RoomMessageRequestHandler, RoomMessageResponseHandler};
|
|
|
|
|
|
|
|
|
use crate::handlers::RoomMessageResponseHandler;
|
|
|
use crate::message_handler::MessageHandler;
|
|
|
use crate::message_handler::MessageHandler;
|
|
|
|
|
|
|
|
|
/// An event affecting the chat room module.
|
|
|
/// An event affecting the chat room module.
|
|
|
@ -124,6 +124,22 @@ fn handle_list_response( |
|
|
.context("sending control 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 {
|
|
|
impl HandleRoomEvent for RoomEventHandler {
|
|
|
fn handle(
|
|
|
fn handle(
|
|
|
&mut self,
|
|
|
&mut self,
|
|
|
@ -143,7 +159,7 @@ impl HandleRoomEvent for RoomEventHandler { |
|
|
handle_list_response(context, response)
|
|
|
handle_list_response(context, response)
|
|
|
}
|
|
|
}
|
|
|
RoomEvent::MessageRequest(request) => {
|
|
|
RoomEvent::MessageRequest(request) => {
|
|
|
RoomMessageRequestHandler::default().run(context, &request)
|
|
|
|
|
|
|
|
|
handle_message_request(context, request)
|
|
|
}
|
|
|
}
|
|
|
RoomEvent::MessageResponse(response) => {
|
|
|
RoomEvent::MessageResponse(response) => {
|
|
|
RoomMessageResponseHandler::default().run(context, &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(),
|
|
|
|
|
|
})
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|