1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package notifier
- import (
- "gopkg.in/olahol/melody.v1"
- )
- type Notifier struct {
- channel chan *Notification
- Melody *melody.Melody
- }
- func NewNotifier(m *melody.Melody) *Notifier {
- n := new(Notifier)
- n.channel = make(chan *Notification)
- n.Melody = m
- return n
- }
- func (n *Notifier) Listen(then func(notification *Notification)) {
- for {
- select {
- case noti := <-n.channel:
- then(noti)
- }
- }
- }
- func (n *Notifier) Notify(collection, type_ string, data []byte) {
- n.channel <- &Notification{
- Collection: collection,
- Type: type_,
- Data: data,
- }
- }
- func (n *Notifier) Close() {
- close(n.channel)
- }
- type Notification struct {
- Collection string `json:"collection"`
- Type string `json:"type"`
- Data []byte `json:"data,omitempty"`
- }
|