| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package providers
- import (
- "context"
- "git.wenlab.co/joe/beaconfire"
- "github.com/slack-go/slack"
- )
- const SLACKFIRE_NAME = "slackfire"
- type OptionsSlack struct {
- AuthToken string
- }
- type slackfire struct {
- opt *OptionsSlack
- }
- var _ beaconfire.BeaconFire = &slackfire{}
- func NewSlackfire(opt *OptionsSlack) *slackfire {
- return &slackfire{
- opt: opt,
- }
- }
- func (c slackfire) Name() string {
- return SLACKFIRE_NAME
- }
- func (c *slackfire) Send(bp *beaconfire.BeaconParam) error {
- if len(bp.To) <= 0 {
- return beaconfire.ErrNoReceiver
- }
- s := slack.New(c.opt.AuthToken)
- for _, channel := range bp.To {
- if _, _, err := s.PostMessageContext(
- context.TODO(),
- channel,
- slack.MsgOptionText(bp.Content, false)); err != nil {
- return err
- }
- }
- return nil
- }
|