1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-06-20 16:35:17 +00:00

Propagate comments update events

This commit is contained in:
2021-02-06 11:37:56 +01:00
parent e2acb3813e
commit 3e4d2872ea
3 changed files with 68 additions and 7 deletions

View File

@ -6,14 +6,18 @@ use crate::api_data::comment_api::CommentAPI;
use crate::api_data::res_create_comment::ResCreateComment;
use crate::constants::PATH_COMMENTS_IMAGES;
use crate::controllers::routes::RequestResult;
use crate::controllers::user_ws_controller;
use crate::data::base_request_handler::BaseRequestHandler;
use crate::data::comment::Comment;
use crate::data::error::Res;
use crate::data::http_request_handler::HttpRequestHandler;
use crate::data::notification::NotifEventType;
use crate::data::post::PostAccessLevel;
use crate::helpers::{comments_helper, notifications_helper, posts_helper};
use crate::data::user_ws_message::UserWsMessage;
use crate::helpers::{comments_helper, events_helper, notifications_helper, posts_helper};
use crate::helpers::events_helper::Event;
use crate::utils::date_utils::time;
use crate::utils::string_utils::remove_html_nodes;
use crate::data::base_request_handler::BaseRequestHandler;
/// Create a new comment
pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
@ -80,4 +84,46 @@ pub fn delete(r: &mut HttpRequestHandler) -> RequestResult {
comments_helper::delete(&comment)?;
r.success("Comment deleted.")
}
/// Events handler
pub fn handle_event(e: &events_helper::Event) -> Res {
match e {
Event::NewComment(comment) => {
user_ws_controller::send_message_to_specific_connections(
|c| c.posts.contains(&comment.post_id),
|c| UserWsMessage::no_id_message(
"new_comment",
CommentAPI::new(comment, &Some(c.user_id.clone()))?,
),
None::<fn(&_) -> _>,
)?;
}
Event::UpdatedComment(comment) => {
user_ws_controller::send_message_to_specific_connections(
|c| c.posts.contains(&comment.post_id),
|c| UserWsMessage::no_id_message(
"comment_updated",
CommentAPI::new(comment, &Some(c.user_id.clone()))?,
),
None::<fn(&_) -> _>,
)?;
}
Event::DeletedComment(comment) => {
user_ws_controller::send_message_to_specific_connections(
|c| c.posts.contains(&comment.post_id),
|_| UserWsMessage::no_id_message(
"comment_deleted",
comment.id.clone(),
),
None::<fn(&_) -> _>,
)?;
}
_ => {}
}
Ok(())
}