From 952f6b139d7efbc60d060ed8e56b53f56076c247 Mon Sep 17 00:00:00 2001 From: UlricQin Date: Tue, 30 Nov 2021 11:49:08 +0800 Subject: [PATCH] add api: get one alert-subscribe --- .gitignore | 1 + src/models/alert_subscribe.go | 14 ++++++++++++++ src/webapi/router/router.go | 1 + src/webapi/router/router_alert_subscribe.go | 20 ++++++++++++++++++++ 4 files changed, 36 insertions(+) diff --git a/.gitignore b/.gitignore index d246042a..c9c69f95 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ _test /vendor /tmp /pub +/n9e .alerts .idea diff --git a/src/models/alert_subscribe.go b/src/models/alert_subscribe.go index 51306b16..4adecf66 100644 --- a/src/models/alert_subscribe.go +++ b/src/models/alert_subscribe.go @@ -40,6 +40,20 @@ func AlertSubscribeGets(groupId int64) (lst []AlertSubscribe, err error) { return } +func AlertSubscribeGet(where string, args ...interface{}) (*AlertSubscribe, error) { + var lst []*AlertSubscribe + err := DB().Where(where, args...).Find(&lst).Error + if err != nil { + return nil, err + } + + if len(lst) == 0 { + return nil, nil + } + + return lst[0], nil +} + func (s *AlertSubscribe) Verify() error { if s.Cluster == "" { return errors.New("cluster invalid") diff --git a/src/webapi/router/router.go b/src/webapi/router/router.go index 5e8ca715..c206eb3e 100644 --- a/src/webapi/router/router.go +++ b/src/webapi/router/router.go @@ -185,6 +185,7 @@ func configRoute(r *gin.Engine, version string) { pages.DELETE("/busi-group/:id/alert-mutes", jwtAuth(), user(), bgrw(), alertMuteDel) pages.GET("/busi-group/:id/alert-subscribes", jwtAuth(), user(), bgro(), alertSubscribeGets) + pages.GET("/alert-subscribe/:sid", jwtAuth(), user(), bgro(), alertSubscribeGet) pages.POST("/busi-group/:id/alert-subscribes", jwtAuth(), user(), bgrw(), alertSubscribeAdd) pages.PUT("/busi-group/:id/alert-subscribes", jwtAuth(), user(), bgrw(), alertSubscribePut) pages.DELETE("/busi-group/:id/alert-subscribes", jwtAuth(), user(), bgrw(), alertSubscribeDel) diff --git a/src/webapi/router/router_alert_subscribe.go b/src/webapi/router/router_alert_subscribe.go index fec8a84a..f0effb39 100644 --- a/src/webapi/router/router_alert_subscribe.go +++ b/src/webapi/router/router_alert_subscribe.go @@ -28,6 +28,26 @@ func alertSubscribeGets(c *gin.Context) { ginx.NewRender(c).Data(lst, err) } +func alertSubscribeGet(c *gin.Context) { + subid := ginx.UrlParamInt64(c, "sid") + + sub, err := models.AlertSubscribeGet("id=?", subid) + ginx.Dangerous(err) + + if sub == nil { + ginx.NewRender(c, 404).Message("No such alert subscribe") + return + } + + ugcache := make(map[int64]*models.UserGroup) + sub.FillUserGroups(ugcache) + + rulecache := make(map[int64]string) + sub.FillRuleName(rulecache) + + ginx.NewRender(c).Data(sub, nil) +} + func alertSubscribeAdd(c *gin.Context) { var f models.AlertSubscribe ginx.BindJSON(c, &f) -- GitLab