Skip to content

Commit 01249b2

Browse files
author
Cairry
committed
😏 Notice object support SREFlow AI
1 parent 0622824 commit 01249b2

3 files changed

Lines changed: 47 additions & 1 deletion

File tree

pkg/medium/entry.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ func senderFactory(noticeType string) (SendInter, error) {
106106
return getSMSSender()
107107
case "Phone":
108108
return getPhoneSender()
109+
case "SREFlow":
110+
return NewSREFlowSender(), nil
109111
default:
110112
return nil, fmt.Errorf("无效的通知类型: %s", noticeType)
111113
}

pkg/medium/sreflow.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package medium
2+
3+
import (
4+
"bytes"
5+
"errors"
6+
"fmt"
7+
"io"
8+
"watchAlert/pkg/tools"
9+
)
10+
11+
type (
12+
// SREFlowSender
13+
SREFlowSender struct{}
14+
)
15+
16+
var SREFlowTestContent = fmt.Sprintf(`{
17+
"text": "%s"
18+
}`, RobotTestContent)
19+
20+
func NewSREFlowSender() SendInter { return &SREFlowSender{} }
21+
22+
func (w *SREFlowSender) Send(params SendParams) error {
23+
return w.post(params.Hook, params.Headers, params.Content)
24+
}
25+
26+
func (w *SREFlowSender) Test(params SendParams) error {
27+
return w.post(params.Hook, params.Headers, SREFlowTestContent)
28+
}
29+
30+
func (w *SREFlowSender) post(hook string, headers map[string]string, content string) error {
31+
res, err := tools.Post(headers, hook, bytes.NewReader([]byte(content)), 10)
32+
if err != nil {
33+
return err
34+
}
35+
36+
if res.StatusCode != 200 {
37+
bodyByte, err := io.ReadAll(res.Body)
38+
if err != nil {
39+
return fmt.Errorf("读取 Body 失败, err: %s", err.Error())
40+
}
41+
return errors.New(string(bodyByte))
42+
}
43+
44+
return nil
45+
}

pkg/medium/webhook.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ type (
1515

1616
var WebhookTestContent = fmt.Sprintf(`{
1717
"text": "%s"
18-
}
1918
}`, RobotTestContent)
2019

2120
func NewWebHookSender() SendInter { return &WebHookSender{} }

0 commit comments

Comments
 (0)