diff options
| author | Eskil Queseth <eskilq@kth.se> | 2021-05-21 15:41:49 +0200 |
|---|---|---|
| committer | Eskil Queseth <eskilq@kth.se> | 2021-05-21 15:41:49 +0200 |
| commit | 1a0a0cc5796bebf32e50465abb68b06044aac2e7 (patch) | |
| tree | 90214942debde9bb0dfc28e81bcceddf59e20d12 /mumd/src/state.rs | |
| parent | 9769c26156311fa24a1a376736172283e199bbf9 (diff) | |
| download | mum-1a0a0cc5796bebf32e50465abb68b06044aac2e7.tar.gz | |
refactor user name getting
Diffstat (limited to 'mumd/src/state.rs')
| -rw-r--r-- | mumd/src/state.rs | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/mumd/src/state.rs b/mumd/src/state.rs index 7a5df90..87a5a0e 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -300,6 +300,13 @@ impl State { .1 .channel() } + fn get_user_name(&self, user: u32) -> String { + self.server() + .unwrap() + .users() + .get(&user).map(|e| e.name().to_string()) + .unwrap_or(format!("Unknown user {}", user)) + } } pub fn handle_command( @@ -619,13 +626,7 @@ pub fn handle_command( if let TcpEventData::TextMessage(a) = data { let message = ( a.get_message().to_owned(), - ref_state.read() - .unwrap() - .server() - .unwrap() - .users() - .get(&a.get_actor()).map(|e| e.name().to_string()) - .unwrap_or(format!("Unknown user {}", a.get_actor())) + ref_state.read().unwrap().get_user_name(a.get_actor()) ); sender.send(Ok(Some(CommandResponse::PastMessage { message }))).is_ok() } else { @@ -635,18 +636,8 @@ pub fn handle_command( ) } else { let messages = std::mem::take(&mut state.message_buffer); - let server = match state.server.as_ref() { - Some(s) => s, - None => return now!(Err(Error::Disconnected)), - }; let messages = messages.into_iter() - .map(|(msg, user)| (msg, server - .users() - .get(&user) - .map(|e| e - .name() - .to_string()) - .unwrap_or(format!("Unknown user {}", user)))) + .map(|(msg, user)| (msg, state.get_user_name(user))) .collect(); now!(Ok(Some(CommandResponse::PastMessages { messages }))) |
