From c1eba4fa1e6af9c983ccd71d9635f77aad844b75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Vay=C3=A1?= Date: Fri, 20 Sep 2019 20:27:31 +0200 Subject: [PATCH] [MM-17068] send mark as unread event through websocket (#12074) --- app/channel.go | 12 +++++++++++- model/websocket_message.go | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/channel.go b/app/channel.go index 73c801187a..b0c51bfe2f 100644 --- a/app/channel.go +++ b/app/channel.go @@ -1802,7 +1802,17 @@ func (a *App) MarkChannelAsUnreadFromPost(postID string, userID string) (*model. return nil, err } - return a.Srv.Store.Channel().UpdateLastViewedAtPost(post, userID, unreadMentions) + channel, updateErr := a.Srv.Store.Channel().UpdateLastViewedAtPost(post, userID, unreadMentions) + if err != nil { + return channel, updateErr + } + message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_POST_UNREAD, channel.TeamId, channel.ChannelId, channel.UserId, nil) + message.Add("msg_count", channel.MsgCount) + message.Add("mention_count", channel.MentionCount) + message.Add("last_viewed_at", channel.LastViewedAt) + message.Add("post_id", postID) + a.Publish(message) + return channel, nil } func (a *App) esAutocompleteChannels(teamId, term string, includeDeleted bool) (*model.ChannelList, *model.AppError) { diff --git a/model/websocket_message.go b/model/websocket_message.go index 132b89a084..c259d8b49e 100644 --- a/model/websocket_message.go +++ b/model/websocket_message.go @@ -14,6 +14,7 @@ const ( WEBSOCKET_EVENT_POSTED = "posted" WEBSOCKET_EVENT_POST_EDITED = "post_edited" WEBSOCKET_EVENT_POST_DELETED = "post_deleted" + WEBSOCKET_EVENT_POST_UNREAD = "post_unread" WEBSOCKET_EVENT_CHANNEL_CONVERTED = "channel_converted" WEBSOCKET_EVENT_CHANNEL_CREATED = "channel_created" WEBSOCKET_EVENT_CHANNEL_DELETED = "channel_deleted"