diff --git a/src/api/handlers.rs b/src/api/handlers.rs index 0250381..a34e1a3 100644 --- a/src/api/handlers.rs +++ b/src/api/handlers.rs @@ -125,7 +125,7 @@ pub fn send_message( } let freenet_message = crate::api::response::FreenetMessage { - id: id.clone().0, + id: parsed.id.0, // My identifier message: message.clone(), date: date.clone(), }; diff --git a/src/api/types.rs b/src/api/types.rs index 4a0d56c..1c8d5e6 100644 --- a/src/api/types.rs +++ b/src/api/types.rs @@ -3,6 +3,7 @@ use serde::{Serialize, Deserialize}; #[derive(Serialize, Deserialize, Debug, PartialEq)] #[serde(rename_all = "camelCase")] +#[serde(tag = "type")] pub struct Message { pub message: String, pub date: Time, diff --git a/src/chat/serv_conn.rs b/src/chat/serv_conn.rs index 99e934d..d14615c 100644 --- a/src/chat/serv_conn.rs +++ b/src/chat/serv_conn.rs @@ -1,5 +1,5 @@ -use crate::api::types::Message as FrontMessage; use super::serv_handler::to_server_sender; +use crate::api::types::Message as FrontMessage; use crate::chat::types::{PackedMessage, RP, SP}; use async_std::task; use fcpv2::types::traits::FcpParser; @@ -102,30 +102,29 @@ async fn server_responce_getter(mut receiver: OwnedReadHalf, client_sender: SP) log::debug!("\n\n\n\n\n AAAAAAAAA {:?} \n\n\n\n", captured); let data_length: usize = usize::from_str_radix(&captured[4], 10).unwrap(); let message = &captured[7][0..data_length].to_string(); - let parsed_message = - serde_json::from_str::(&message[..]); + let parsed_message = serde_json::from_str::< + crate::api::response::FreenetMessage, + >(&message[..]); match parsed_message { Ok(json) => { - let front_message = FrontMessage{ + let front_message = FrontMessage { date: json.date, from_me: false, id: json.id, message: json.message, }; - client_sender.send(PackedMessage::ToClient(serde_json::to_string(&front_message).unwrap())).unwrap(); + client_sender + .send(PackedMessage::FromCore( + serde_json::to_string(&front_message).unwrap(), + )) + .unwrap(); + log::debug!("Send gotted message to frontend..."); } Err(_) => { log::error!("Failed to parse gotted message"); } } - log::debug!("Parse new message!!!! {:?}", &message); - client_sender - .send(PackedMessage::ToClient( - message.to_string(), - )) - .unwrap(); - let mut lines = &received.clone().lines(); } "AllData" => { log::debug!("Receive a new message!!! {:?}", &received);