github.com/lologarithm/mattermost-server@v5.3.2-0.20181002060438-c82a84ed765b+incompatible/app/cluster_handlers.go (about) 1 // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package app 5 6 import ( 7 "strings" 8 9 "github.com/mattermost/mattermost-server/model" 10 ) 11 12 func (a *App) RegisterAllClusterMessageHandlers() { 13 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_PUBLISH, a.ClusterPublishHandler) 14 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_UPDATE_STATUS, a.ClusterUpdateStatusHandler) 15 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_ALL_CACHES, a.ClusterInvalidateAllCachesHandler) 16 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_WEBHOOK, a.ClusterInvalidateCacheForWebhookHandler) 17 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_POSTS, a.ClusterInvalidateCacheForChannelPostsHandler) 18 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_MEMBERS_NOTIFY_PROPS, a.ClusterInvalidateCacheForChannelMembersNotifyPropHandler) 19 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_MEMBERS, a.ClusterInvalidateCacheForChannelMembersHandler) 20 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_BY_NAME, a.ClusterInvalidateCacheForChannelByNameHandler) 21 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL, a.ClusterInvalidateCacheForChannelHandler) 22 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_USER, a.ClusterInvalidateCacheForUserHandler) 23 a.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_CLEAR_SESSION_CACHE_FOR_USER, a.ClusterClearSessionCacheForUserHandler) 24 } 25 26 func (a *App) ClusterPublishHandler(msg *model.ClusterMessage) { 27 event := model.WebSocketEventFromJson(strings.NewReader(msg.Data)) 28 a.PublishSkipClusterSend(event) 29 } 30 31 func (a *App) ClusterUpdateStatusHandler(msg *model.ClusterMessage) { 32 status := model.StatusFromJson(strings.NewReader(msg.Data)) 33 a.AddStatusCacheSkipClusterSend(status) 34 } 35 36 func (a *App) ClusterInvalidateAllCachesHandler(msg *model.ClusterMessage) { 37 a.InvalidateAllCachesSkipSend() 38 } 39 40 func (a *App) ClusterInvalidateCacheForWebhookHandler(msg *model.ClusterMessage) { 41 a.InvalidateCacheForWebhookSkipClusterSend(msg.Data) 42 } 43 44 func (a *App) ClusterInvalidateCacheForChannelPostsHandler(msg *model.ClusterMessage) { 45 a.InvalidateCacheForChannelPostsSkipClusterSend(msg.Data) 46 } 47 48 func (a *App) ClusterInvalidateCacheForChannelMembersNotifyPropHandler(msg *model.ClusterMessage) { 49 a.InvalidateCacheForChannelMembersNotifyPropsSkipClusterSend(msg.Data) 50 } 51 52 func (a *App) ClusterInvalidateCacheForChannelMembersHandler(msg *model.ClusterMessage) { 53 a.InvalidateCacheForChannelMembersSkipClusterSend(msg.Data) 54 } 55 56 func (a *App) ClusterInvalidateCacheForChannelByNameHandler(msg *model.ClusterMessage) { 57 a.InvalidateCacheForChannelByNameSkipClusterSend(msg.Props["id"], msg.Props["name"]) 58 } 59 60 func (a *App) ClusterInvalidateCacheForChannelHandler(msg *model.ClusterMessage) { 61 a.InvalidateCacheForChannelSkipClusterSend(msg.Data) 62 } 63 64 func (a *App) ClusterInvalidateCacheForUserHandler(msg *model.ClusterMessage) { 65 a.InvalidateCacheForUserSkipClusterSend(msg.Data) 66 } 67 68 func (a *App) ClusterClearSessionCacheForUserHandler(msg *model.ClusterMessage) { 69 a.ClearSessionCacheForUserSkipClusterSend(msg.Data) 70 }