From 38af08eb14aac6259dad7e1407806715d61bdb3a Mon Sep 17 00:00:00 2001 From: Jeff Baskin Date: Tue, 22 Apr 2025 08:31:25 -0400 Subject: [PATCH] Reattached document service. --- src/client.rs | 15 +++++++++++++++ src/lib.rs | 8 ++++++++ src/main.rs | 9 +++++++-- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/client.rs b/src/client.rs index 8f106b4..9c63a83 100644 --- a/src/client.rs +++ b/src/client.rs @@ -155,4 +155,19 @@ mod clients { assert_eq!(result.get_id(), expected.get_id()); assert_eq!(result.get_msg_type(), expected.get_msg_type()); } + + #[test] + fn document_return() { + let queue = Queue::new(); + let (queue_tx, queue_rx) = channel(); + queue.add(queue_tx, [MsgType::DocumentRequest].to_vec()); + let chan = Client::start(queue.clone()); + let chan_rx = chan.send(Message::new(MsgType::DocumentRequest)); + let msg = queue_rx.recv_timeout(TIMEOUT).unwrap(); + let expected = msg.reply(MsgType::Document); + queue.send(expected.clone()).unwrap(); + let result = chan_rx.recv_timeout(TIMEOUT).unwrap(); + assert_eq!(result.get_id(), expected.get_id()); + assert_eq!(result.get_msg_type(), expected.get_msg_type()); + } } diff --git a/src/lib.rs b/src/lib.rs index 95dca2f..6923b90 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -42,4 +42,12 @@ impl MoreThanText { let reply = rx.recv().unwrap(); reply.get_data("sess_id").unwrap().to_uuid().unwrap() } + + pub fn get_document(&self, sess_id: Uuid) -> String { + let mut msg = Message::new(MsgType::DocumentRequest); + msg.add_data("sess_id", sess_id); + let rx = self.client_channel.send(msg); + let reply = rx.recv().unwrap(); + reply.get_data("doc").unwrap().to_string() + } } diff --git a/src/main.rs b/src/main.rs index c3fff9b..10c39e8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -80,8 +80,13 @@ where } } -async fn mtt_conn(_sess_id: SessionID, _state: State) -> impl IntoResponse { - ("something".to_string(),) +async fn mtt_conn(sess_id: SessionID, state: State) -> impl IntoResponse { + let (tx, mut rx) = channel(1); + spawn(async move { + tx.send(state.get_document(sess_id.0)).await.unwrap(); + }); + let content = rx.recv().await.unwrap(); + content } #[cfg(test)]