diff options
author | enahum <nahumhbl@gmail.com> | 2016-09-27 11:19:50 -0300 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-09-27 10:19:50 -0400 |
commit | 60347559c7fb857bd5afcd93e65b6e220625da79 (patch) | |
tree | dd60ee950e12a9c64f82a1d5239d9d3327aa7ae0 /model | |
parent | bfca752940a13c874788b0c885d36b2b263bd4fb (diff) | |
download | chat-60347559c7fb857bd5afcd93e65b6e220625da79.tar.gz chat-60347559c7fb857bd5afcd93e65b6e220625da79.tar.bz2 chat-60347559c7fb857bd5afcd93e65b6e220625da79.zip |
PLT-3734 Cleaning up shouldSendEvent function (#4024)
* PLT-3734 Cleaning up shouldSendEvent function
* Fix LHS unread highlight and jewel mentions
Diffstat (limited to 'model')
-rw-r--r-- | model/websocket_message.go | 16 | ||||
-rw-r--r-- | model/websocket_message_test.go | 4 |
2 files changed, 13 insertions, 7 deletions
diff --git a/model/websocket_message.go b/model/websocket_message.go index 4e1f1dee3..9bce1e825 100644 --- a/model/websocket_message.go +++ b/model/websocket_message.go @@ -33,20 +33,26 @@ type WebSocketMessage interface { IsValid() bool } +type WebsocketBroadcast struct { + OmitUsers map[string]bool `json:"-"` // broadcast is omitted for users listed here + UserId string `json:"user_id"` // broadcast only occurs for this user + ChannelId string `json:"channel_id"` // broadcast only occurs for users in this channel + TeamId string `json:"team_id"` // broadcast only occurs for users in this team +} + type WebSocketEvent struct { - TeamId string `json:"team_id"` - ChannelId string `json:"channel_id"` - UserId string `json:"user_id"` Event string `json:"event"` Data map[string]interface{} `json:"data"` + Broadcast *WebsocketBroadcast `json:"broadcast"` } func (m *WebSocketEvent) Add(key string, value interface{}) { m.Data[key] = value } -func NewWebSocketEvent(teamId string, channelId string, userId string, event string) *WebSocketEvent { - return &WebSocketEvent{TeamId: teamId, ChannelId: channelId, UserId: userId, Event: event, Data: make(map[string]interface{})} +func NewWebSocketEvent(event, teamId, channelId, userId string, omitUsers map[string]bool) *WebSocketEvent { + return &WebSocketEvent{Event: event, Data: make(map[string]interface{}), + Broadcast: &WebsocketBroadcast{TeamId: teamId, ChannelId: channelId, UserId: userId, OmitUsers: omitUsers}} } func (o *WebSocketEvent) IsValid() bool { diff --git a/model/websocket_message_test.go b/model/websocket_message_test.go index cbc564b6c..dceb37eef 100644 --- a/model/websocket_message_test.go +++ b/model/websocket_message_test.go @@ -9,7 +9,7 @@ import ( ) func TestWebSocketEvent(t *testing.T) { - m := NewWebSocketEvent(NewId(), NewId(), NewId(), "some_event") + m := NewWebSocketEvent("some_event", NewId(), NewId(), NewId(), nil) m.Add("RootId", NewId()) json := m.ToJson() result := WebSocketEventFromJson(strings.NewReader(json)) @@ -23,7 +23,7 @@ func TestWebSocketEvent(t *testing.T) { t.Fatal("should be valid") } - if m.TeamId != result.TeamId { + if m.Broadcast.TeamId != result.Broadcast.TeamId { t.Fatal("Ids do not match") } |