-
Notifications
You must be signed in to change notification settings - Fork 0
/
alert_silences_service.go
91 lines (80 loc) · 2.41 KB
/
alert_silences_service.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package service
import (
"github.com/DWHengr/aurora/internal/alertcore"
"github.com/DWHengr/aurora/internal/models"
"github.com/DWHengr/aurora/internal/models/mysql"
"github.com/DWHengr/aurora/internal/page"
"github.com/DWHengr/aurora/internal/service/utils"
"github.com/DWHengr/aurora/pkg/id"
"gorm.io/gorm"
)
type AlertSilencesService interface {
GetAllAlertSilences() ([]*models.AlertSilences, error)
GetAllAlertSilencesMap() (map[string]*models.AlertSilences, error)
Create(silence *models.AlertSilences) (*CreateAlertSilenceResp, error)
Deletes(ids []string) error
Update(user *models.AlertSilences) (*CreateAlertSilenceResp, error)
Page(page *page.ReqPage) (*page.RespPage, error)
}
type alertSilencesService struct {
db *gorm.DB
alertSilencesRepo models.AlertSilencesRepo
}
func NewAlertSilencesService() (AlertSilencesService, error) {
db := utils.GetMysqlInstance()
return &alertSilencesService{
db: db,
alertSilencesRepo: mysql.NewAlertSilencesRepo(),
}, nil
}
func (s *alertSilencesService) GetAllAlertSilences() ([]*models.AlertSilences, error) {
tables, err := s.alertSilencesRepo.GetAll(s.db)
if err != nil {
return nil, err
}
return tables, err
}
func (s *alertSilencesService) GetAllAlertSilencesMap() (map[string]*models.AlertSilences, error) {
tables, err := s.alertSilencesRepo.GetAll(s.db)
if err != nil {
return nil, err
}
tablesMap := make(map[string]*models.AlertSilences)
for _, table := range tables {
tablesMap[table.ID] = table
}
return tablesMap, err
}
type CreateAlertSilenceResp struct {
ID string `json:"id"`
}
func (s *alertSilencesService) Create(silence *models.AlertSilences) (*CreateAlertSilenceResp, error) {
silence.ID = "usr-" + id.ShortID(8)
err := s.alertSilencesRepo.Create(s.db, silence)
if err != nil {
return nil, err
}
alertcore.Reload()
return &CreateAlertSilenceResp{
ID: silence.ID,
}, nil
}
func (s *alertSilencesService) Deletes(ids []string) error {
err := s.alertSilencesRepo.Deletes(s.db, ids)
if err == nil {
alertcore.Reload()
}
return err
}
func (s *alertSilencesService) Update(user *models.AlertSilences) (*CreateAlertSilenceResp, error) {
err := s.alertSilencesRepo.Update(s.db, user)
if err == nil {
alertcore.Reload()
}
return &CreateAlertSilenceResp{
ID: user.ID,
}, err
}
func (s *alertSilencesService) Page(page *page.ReqPage) (*page.RespPage, error) {
return s.alertSilencesRepo.Page(s.db, page)
}