From cc92837d641f7df681c236cc8b4614364e27f121 Mon Sep 17 00:00:00 2001 From: Horhik Date: Wed, 24 Mar 2021 21:35:20 +0300 Subject: [PATCH] add unimplemented request_handler --- src/api/handler.rs | 1 - src/api/handlers.rs | 9 ++++++ src/api/mod.rs | 2 +- src/api/request_handler.rs | 1 - src/chat/front_conn.rs | 61 ++++++++++++++++++++++---------------- src/main.rs | 4 +-- 6 files changed, 47 insertions(+), 31 deletions(-) delete mode 100644 src/api/handler.rs create mode 100644 src/api/handlers.rs delete mode 100644 src/api/request_handler.rs diff --git a/src/api/handler.rs b/src/api/handler.rs deleted file mode 100644 index 9becd63..0000000 --- a/src/api/handler.rs +++ /dev/null @@ -1 +0,0 @@ -use rusqlite; diff --git a/src/api/handlers.rs b/src/api/handlers.rs new file mode 100644 index 0000000..c502852 --- /dev/null +++ b/src/api/handlers.rs @@ -0,0 +1,9 @@ +use rusqlite; +use crate::chat::types::SP; + +use async_std::io::Result; +use rusqlite::Connection; +// server_sender sending data to server thread; +pub async fn request_handler(json: String, server_sender: &SP, conn: &Connection) -> Result<()>{ + unimplemented!() +} diff --git a/src/api/mod.rs b/src/api/mod.rs index d2fe7b4..bbce93f 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -1,3 +1,3 @@ pub mod request; pub mod response; - +pub mod handlers; diff --git a/src/api/request_handler.rs b/src/api/request_handler.rs deleted file mode 100644 index 2056004..0000000 --- a/src/api/request_handler.rs +++ /dev/null @@ -1 +0,0 @@ -use diff --git a/src/chat/front_conn.rs b/src/chat/front_conn.rs index be02fce..c5c683a 100644 --- a/src/chat/front_conn.rs +++ b/src/chat/front_conn.rs @@ -16,8 +16,9 @@ use std::sync::mpsc::{Receiver, Sender}; use super::stay_awake::request_repeater; -type SP = Sender; -type RP = Receiver; +use super::types::{RP, SP}; + +use crate::api::handlers::request_handler; #[derive(Deserialize, Debug)] struct FrontMsg { @@ -27,12 +28,19 @@ struct FrontMsg { time: String, } -pub fn listen_client(server_sender: SP, client_receiver: RP) -> io::Result<()> { - task::block_on(connect_to_client(server_sender, client_receiver)) +pub fn listen_client( + server_sender: SP, + client_receiver: RP, + conn: rusqlite::Connection, +) -> io::Result<()> { + task::block_on(connect_to_client(server_sender, client_receiver, conn)) } - -async fn connect_to_client(server_sender: SP, client_receiver: RP) -> io::Result<()> { +async fn connect_to_client( + server_sender: SP, + client_receiver: RP, + conn: rusqlite::Connection, +) -> io::Result<()> { let addr = env::args() .nth(1) .unwrap_or_else(|| "127.0.0.1:5948".to_string()); @@ -53,7 +61,7 @@ async fn connect_to_client(server_sender: SP, client_receiver: RP) -> io::Result log::info!("connected to: {}", addr); let (sender, receiver) = ws.split(); - let t1 = task::spawn(connection_for_sending(receiver, server_sender)); + let t1 = task::spawn(connection_for_sending(receiver, server_sender, conn)); connection_for_receiving(sender, client_receiver, client_repeater).await?; t1.await?; } @@ -86,23 +94,23 @@ async fn connection_for_receiving( async fn connection_for_sending( mut receiver: SplitStream>, server_sender: SP, + conn: rusqlite::Connection, ) -> io::Result<()> { log::info!("Connection for sending launched"); let mut new_msg = receiver.next(); loop { - match new_msg.await { - Some(msg) => { - let jsoned = msg.expect("Falied to unwrap gotted message"); - log::info!("The message is: {:?}", &jsoned); - //TODO handle_request(jsoned, server_sender,); - let res: serde_json::Result = - serde_json::from_str(jsoned.to_text().expect("Falied to parse JSON")); - if let Ok(received_msg) = res { - let msg = received_msg.message; - //db::start_db().expect("Failed to start db"); + if let Some(msg) = new_msg.await { + let jsoned = msg.expect("Falied to unwrap gotted message"); + request_handler(jsoned.to_string(), &server_sender, &conn); + /* + let res: serde_json::Result = + serde_json::from_str(jsoned.to_text().expect("Falied to parse JSON")); + if let Ok(received_msg) = res { + let msg = received_msg.message; + //db::start_db().expect("Failed to start db"); - server_sender.send(PackedMessage { message: msg }).expect("Falied to send message"); - /* message example + ss.send(PackedMessage { message: msg }).expect("Falied to send message"); + /* message example { "user_id": 123456789, "receiver_id": 123456789, @@ -110,14 +118,15 @@ async fn connection_for_sending( "time": "Tue Oct 13 2020 18:31:22 GMT+0300 (Eastern European Summer Time)" } */ - } else { - log::info!("seems, that messsage formatted wrong"); - log::info!("{:?}", res); - } - - new_msg = receiver.next(); + } else { + log::info!("seems, that messsage formatted wrong"); + log::info!("{:?}", res); } - None => { + */ + + new_msg = receiver.next(); + } else { + { break; } } diff --git a/src/main.rs b/src/main.rs index 5f91a7d..2212b05 100644 --- a/src/main.rs +++ b/src/main.rs @@ -49,7 +49,7 @@ use std::{ fn main() -> io::Result<()> { SimpleLogger::new().init().unwrap(); - let db = db::start_db(); + let db = db::start_db().unwrap(); let (to_server_sender, server_receiver): (Sender, Receiver) = mpsc::channel(); @@ -70,7 +70,7 @@ fn main() -> io::Result<()> { let ss = to_server_sender; let cr = client_receiver; - let t = thread::spawn(move || listen_client(ss, cr)); + let t = thread::spawn(move || listen_client(ss, cr, db)); t.join().expect("failed client thread").unwrap(); });