From b78eae0f7ed59c3a06e523d13816dfc93d7d4630 Mon Sep 17 00:00:00 2001 From: horhik Date: Thu, 29 Apr 2021 10:00:20 +0300 Subject: [PATCH] Send received messages to DB --- src/api/response.rs | 2 +- src/chat/serv_conn.rs | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/api/response.rs b/src/api/response.rs index 0a97dab..bab9c8a 100644 --- a/src/api/response.rs +++ b/src/api/response.rs @@ -68,7 +68,7 @@ pub struct User { } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct FreenetMessage { pub id: uuid::Uuid, diff --git a/src/chat/serv_conn.rs b/src/chat/serv_conn.rs index c856e6a..babee05 100644 --- a/src/chat/serv_conn.rs +++ b/src/chat/serv_conn.rs @@ -1,7 +1,9 @@ use super::serv_handler::to_server_sender; use crate::api::types::Message as FrontMessage; use crate::chat::types::{PackedMessage, RP, SP}; -use crate::db::users::increase_messages_count; +use crate::db::users::{increase_messages_count, get_user_by_id}; +use crate::db::messages::add_message; +use crate::db::types::{Message as DBMessage, Id}; use async_std::task; use fcpv2::types::traits::FcpParser; use r2d2::Pool; @@ -126,6 +128,7 @@ async fn server_responce_getter( >(&message[..]); match parsed_message { Ok(json) => { + let json_clone = json.clone(); let front_message = FrontMessage { date: json.date, from_me: false, @@ -138,8 +141,23 @@ async fn server_responce_getter( )) .unwrap(); log::debug!("Send gotted message to frontend..."); + + log::debug!("Adding message to DB..."); + let user = get_user_by_id(Id(json_clone.clone().id), &db).unwrap(); + + add_message(DBMessage{ + id: user.messages_count, + date: json_clone.date, + user_id: Id(json_clone.id), + message: json_clone.message, + from_me: false, + + }, &db).unwrap(); + log::debug!("Increasing messages count..."); increase_messages_count(crate::db::types::Id(json.id), &db).unwrap(); + + } Err(_) => { log::error!("Failed to parse gotted message");