From 3e9a1a28b1283e40bc7edb94e2370c74e7fd68e0 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期五, 17 五月 2024 15:54:29 +0800 Subject: [PATCH] 添加订阅查询接口 --- util/http.go | 26 +++++++++++-- client/notify.go | 11 +++++ routes/webApi.go | 4 + controller/subscribeCtl.go | 28 ++++++++++++++ repository/subscribeRepo.go | 13 ++++++ 5 files changed, 77 insertions(+), 5 deletions(-) diff --git a/client/notify.go b/client/notify.go index 2b1cd08..e1a9336 100644 --- a/client/notify.go +++ b/client/notify.go @@ -53,6 +53,7 @@ return vo.StatusSuccess } + func UpdateSubscribe(url string, msg []byte) int { rsp, err := util.HttpPut(url, headers, msg) if err != nil { @@ -72,3 +73,13 @@ return vo.StatusSuccess } + +func GetSubscribes(url string) ([]byte, error) { + rsp, err := util.HttpGet(url, headers) + if err != nil { + logger.Warn("Put subscribe failed, %s", err.Error()) + + } + + return rsp, err +} diff --git a/controller/subscribeCtl.go b/controller/subscribeCtl.go index 2cceebc..6ffc199 100644 --- a/controller/subscribeCtl.go +++ b/controller/subscribeCtl.go @@ -192,3 +192,31 @@ c.JSON(http.StatusOK, gin.H{"msg": "ok"}) } + +func (s SubscribeController) List(c *gin.Context) { + if c.Param("id") == "" { + c.JSON(http.StatusBadRequest, gin.H{"msg": "涓嬬骇id涓虹┖"}) + } + + list, err := s.Repository.ListByFromId(c.Param("id")) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"msg": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{"msg": "ok", "data": list}) +} + +func (s SubscribeController) RemoteList(c *gin.Context) { + if c.Param("id") == "" { + c.JSON(http.StatusBadRequest, gin.H{"msg": "涓嬬骇id涓虹┖"}) + } + + data, err := s.Repository.RemoteList(c.Param("id")) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"msg": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{"msg": "ok", "data": data}) +} diff --git a/repository/subscribeRepo.go b/repository/subscribeRepo.go index c924b80..4ecc1f7 100644 --- a/repository/subscribeRepo.go +++ b/repository/subscribeRepo.go @@ -122,6 +122,19 @@ return err } +func (s *SubscribeRepository) RemoteList(sid string) ([]byte, error) { + // 鏌ユ壘涓嬬骇 + var platform models.SubPlatform + err := platform.FindById(sid) + if err != nil { + return nil, err + } + + uri := fmt.Sprintf("http://%s:%d/VIID/Subscribes", platform.RemoteIP, platform.RemotePort) + + return client.GetSubscribes(uri) +} + func (s *SubscribeRepository) SaveReceiveSubscribe(fromId string, subscribe *vo.Subscribe) error { var sub = models.Subscribe{ Id: subscribe.SubscribeID, diff --git a/routes/webApi.go b/routes/webApi.go index ccd4d3b..9dd2c34 100644 --- a/routes/webApi.go +++ b/routes/webApi.go @@ -12,7 +12,9 @@ { router.POST("/:id", subCtl.CreateSubscribes) router.PUT("/:id", subCtl.UpdateSubscribes) - router.PUT("/cancel/:id", subCtl.UpdateSubscribes) + router.PUT("/cancel/:id", subCtl.CancelSubscribes) + router.GET("/list/:id", subCtl.List) + router.GET("/remote_list/:id", subCtl.RemoteList) //router.GET("/:id", subCtl.Faces) //router.DELETE("/:id", subCtl.Faces) } diff --git a/util/http.go b/util/http.go index ecd4c99..38ad875 100644 --- a/util/http.go +++ b/util/http.go @@ -83,11 +83,29 @@ return body, nil } -func HttpGet(url string) error { - _, err := http.Get(url) +func HttpGet(url string, header map[string]string) ([]byte, error) { + req, err := http.NewRequest(http.MethodGet, url, nil) if err != nil { - return err + return nil, err } - return nil + //req.Header.Set("Content-Type", "applicaiton/json; charset=UTF-8") + if header != nil { + for k, v := range header { + req.Header.Set(k, v) + } + } + cli := &http.Client{} + resp, err := cli.Do(req) + if err != nil { + return nil, err + } + + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + return body, nil } -- Gitblit v1.8.0