Files
goodBaby/drivers/fwalert/fwalert.go
T

34 lines
729 B
Go
Raw Normal View History

2026-07-29 11:24:23 +08:00
package fwalert
import (
2026-09-12 15:32:27 +08:00
"context"
2026-07-29 11:24:23 +08:00
"fmt"
"github.com/go-resty/resty/v2"
2026-09-12 15:32:27 +08:00
"github.com/ssdomei232/goodBaby/internal/retry"
2026-07-29 11:24:23 +08:00
)
2026-09-12 15:32:27 +08:00
// Send 发送一条饭碗警告
func Send(ctx context.Context, config *FwAlertRuleConfig) error {
if err := retry.Do(ctx, func() error {
return send(config)
}); err != nil {
return fmt.Errorf("发送饭碗警告失败: %w", err)
}
return nil
}
// send 调用一次 Webhook
2026-07-29 11:24:23 +08:00
func send(config *FwAlertRuleConfig) error {
2026-09-12 15:32:27 +08:00
resp, err := resty.New().R().
SetBody(FwAlertRequest{Message: config.Msg}).
Execute(resty.MethodPost, config.WebhookURL)
2026-07-29 11:24:23 +08:00
if err != nil {
return err
}
if resp.StatusCode() != 200 {
2026-09-12 15:32:27 +08:00
return fmt.Errorf("Webhook 返回状态码 %s", resp.Status())
2026-07-29 11:24:23 +08:00
}
return nil
}