Files
aiaa-notification-server/internal/adapter/adapter.go
T
ryan 0d0cd0c510 feat: 新增 SafeW 出站通知渠道
通过 Bot API sendMessage 投递渲染后的通知,MarkdownV2 自动转义标题与正文。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 00:58:44 +08:00

32 lines
755 B
Go

package adapter
import (
"encoding/json"
"fmt"
"aiaa-notification-service/internal/config"
)
// ChannelSender sends a rendered message to a specific channel.
type ChannelSender interface {
Type() string
Send(title, content string, config json.RawMessage) error
}
func NewSender(channelType string, smtpCfg *config.SMTPConfig, dingtalkLimiter *DingTalkLimiter) (ChannelSender, error) {
switch channelType {
case "dingtalk":
return &DingTalkSender{limiter: dingtalkLimiter}, nil
case "wecom":
return &WeComSender{}, nil
case "bark":
return &BarkSender{}, nil
case "safew":
return &SafeWSender{}, nil
case "email":
return NewEmailSender(*smtpCfg), nil
default:
return nil, fmt.Errorf("unknown channel type: %s", channelType)
}
}