From e5be7a7ed63d4b4e4267057d84b77c4bd3c16781 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期四, 16 五月 2024 13:09:28 +0800
Subject: [PATCH] 添加订阅修改接口

---
 routes/subscribe.go         |    2 ++
 controller/subscribeCtl.go  |   31 +++++++++++++++++++++++++++++++
 repository/subscribeRepo.go |   25 +++++++++++++++++++++++--
 3 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/controller/subscribeCtl.go b/controller/subscribeCtl.go
index 9ef4d86..949c113 100644
--- a/controller/subscribeCtl.go
+++ b/controller/subscribeCtl.go
@@ -23,6 +23,13 @@
 	return controller
 }
 
+func (s SubscribeController) SubscribesList(c *gin.Context) {
+	subList, _ := s.Repository.List()
+
+	c.Header("Content-Type", "application/VIID+json;charset=UTF-8")
+	c.JSON(http.StatusOK, gin.H{"SubscribeList": subList})
+}
+
 func (s SubscribeController) Subscribes(c *gin.Context) {
 	var req vo.RequestSubscribe
 	if err := c.BindJSON(&req); err != nil {
@@ -49,6 +56,30 @@
 	c.JSON(http.StatusOK, gin.H{"ResponseStatusListObject": rsp})
 }
 
+func (s SubscribeController) UpdateSubscribes(c *gin.Context) {
+	var req vo.RequestSubscribe
+	if err := c.BindJSON(&req); err != nil {
+		c.AbortWithStatus(http.StatusBadRequest)
+		return
+	}
+
+	var rsp vo.ResponseStatusList
+	for idx, sub := range req.SubscribeListObject.SubscribeObject {
+		if err := s.Repository.UpdateSubscribe(&req.SubscribeListObject.SubscribeObject[idx]); err == nil {
+			rsp.ResponseStatusObject = append(rsp.ResponseStatusObject, vo.ResponseStatus{
+				RequestURL:   c.FullPath(),
+				StatusCode:   vo.StatusSuccess,
+				StatusString: vo.StatusString[vo.StatusSuccess],
+				Id:           sub.SubscribeID,
+				LocalTime:    time.Now().Format("20060102150405"),
+			})
+		}
+	}
+
+	c.Header("Content-Type", "application/VIID+json;charset=UTF-8")
+	c.JSON(http.StatusOK, gin.H{"ResponseStatusListObject": rsp})
+}
+
 func (s SubscribeController) DeleteSubscribe(c *gin.Context) {
 	idList := c.Query("IDList")
 	var rsp vo.ResponseStatusList
diff --git a/repository/subscribeRepo.go b/repository/subscribeRepo.go
index f5101b6..579129e 100644
--- a/repository/subscribeRepo.go
+++ b/repository/subscribeRepo.go
@@ -13,7 +13,7 @@
 	return SubscribeRepository{}
 }
 
-func (a *SubscribeRepository) CreateSubscribe(fromId string, subscribe *vo.Subscribe) error {
+func (s *SubscribeRepository) CreateSubscribe(fromId string, subscribe *vo.Subscribe) error {
 	var sub = models.Subscribe{
 		Id:     subscribe.SubscribeID,
 		Status: subscribe.SubscribeStatus,
@@ -31,7 +31,22 @@
 	return err
 }
 
-func (a *SubscribeRepository) DeleteSubscribe(id string) error {
+func (s *SubscribeRepository) UpdateSubscribe(subscribe *vo.Subscribe) error {
+	var sub = models.Subscribe{}
+	err := sub.FindById(subscribe.SubscribeID)
+	if err != nil {
+		return err
+	}
+
+	sub.Status = subscribe.SubscribeStatus
+	sub.Ext = *subscribe
+
+	service.UpdateTaskProcs(subscribe.SubscribeID, vo.Msg_Type_Update_Subscribe, nil)
+
+	return sub.Save()
+}
+
+func (s *SubscribeRepository) DeleteSubscribe(id string) error {
 	var sub = models.Subscribe{}
 	err := sub.DeleteById(id)
 	if err != nil {
@@ -42,3 +57,9 @@
 
 	return err
 }
+
+func (s *SubscribeRepository) List() ([]models.Subscribe, error) {
+	var sub models.Subscribe
+
+	return sub.FindAll()
+}
diff --git a/routes/subscribe.go b/routes/subscribe.go
index 9710832..0147e13 100644
--- a/routes/subscribe.go
+++ b/routes/subscribe.go
@@ -8,7 +8,9 @@
 func InitSubscribesRouters(r *gin.RouterGroup) gin.IRoutes {
 	subCtl := controller.NewSubscribeController()
 
+	r.GET("/Subscribes", subCtl.SubscribesList)
 	r.POST("/Subscribes", subCtl.Subscribes)
+	r.PUT("/Subscribes", subCtl.UpdateSubscribes)
 	r.DELETE("/Subscribes", subCtl.DeleteSubscribe)
 	r.POST("/SubscribeNotifications", subCtl.Notifications)
 

--
Gitblit v1.8.0