go-ricochet/application/application.go

37 lines
900 B
Go
Raw Normal View History

2017-05-03 01:33:51 +02:00
package application
import (
"errors"
"github.com/s-rah/go-ricochet/channels"
"github.com/s-rah/go-ricochet/connection"
)
// RicochetApplication bundles many useful constructs that are
// likely standard in a ricochet application
type RicochetApplication struct {
2017-06-11 00:20:41 +02:00
connection *connection.Connection
2017-05-03 01:33:51 +02:00
}
// NewRicochetApplication ...
2017-06-11 00:20:41 +02:00
func NewRicochetApplication(connection *connection.Connection) *RicochetApplication {
2017-05-03 01:33:51 +02:00
ra := new(RicochetApplication)
ra.connection = connection
return ra
}
// SendMessage ...
2017-06-11 00:20:41 +02:00
func (ra *RicochetApplication) SendChatMessage(message string) error {
2017-05-03 01:33:51 +02:00
return ra.connection.Do(func() error {
channel := ra.connection.Channel("im.ricochet.chat", channels.Outbound)
if channel != nil {
chatchannel, ok := (*channel.Handler).(*channels.ChatChannel)
if ok {
chatchannel.SendMessage(message)
}
} else {
return errors.New("")
}
return nil
})
}