Notify everyone when new public channel is created or updated
This commit is contained in:
parent
4e47fea7c9
commit
ff7d8bbfd3
@ -23,6 +23,7 @@ type (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Sends sends events back to all subscribers
|
||||||
func Event() EventService {
|
func Event() EventService {
|
||||||
return (&event{events: repository.Events()}).With(context.Background())
|
return (&event{events: repository.Events()}).With(context.Background())
|
||||||
}
|
}
|
||||||
@ -38,8 +39,16 @@ func (svc *event) Message(m *types.Message) error {
|
|||||||
return svc.push(payload.Message(m), m.ChannelID)
|
return svc.push(payload.Message(m), m.ChannelID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (svc *event) Channel(m *types.Channel) error {
|
// Channel notifies subscribers about channel change
|
||||||
return svc.push(payload.Channel(m), m.ID)
|
//
|
||||||
|
// If this is a public channel we notify everyone
|
||||||
|
func (svc *event) Channel(ch *types.Channel) error {
|
||||||
|
sub := ch.ID
|
||||||
|
if ch.Type == types.ChannelTypePublic {
|
||||||
|
sub = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return svc.push(payload.Channel(ch), sub)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (svc *event) push(m outgoing.MessageEncoder, sub uint64) error {
|
func (svc *event) push(m outgoing.MessageEncoder, sub uint64) error {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user