voucher/internal/data/mixrepoimpl/ding.go

36 lines
755 B
Go

package mixrepoimpl
import (
"context"
"fmt"
"voucher/internal/biz/mixrepos"
"voucher/internal/conf"
"voucher/internal/pkg/ding"
)
type DingMixRepoImpl struct {
bc *conf.Bootstrap
client *ding.TalkClient
}
func NewDingMixRepoImpl(bc *conf.Bootstrap) mixrepos.DingMixRepo {
client := ding.NewDingTalkClient(bc.Alarm.WebhookURL, bc.Alarm.Secret)
return &DingMixRepoImpl{bc: bc, client: client}
}
func (s *DingMixRepoImpl) SendMarkdownMessage(_ context.Context, title, text string) error {
isAtAll := false
if len(s.bc.Alarm.AtMobiles) == 0 {
isAtAll = true
}
if err := s.client.SendMarkdownMessage(title, text, s.bc.Alarm.AtMobiles, isAtAll); err != nil {
return fmt.Errorf("markdown 消息发送失败: %v", err)
}
return nil
}