package controller import ( "fmt" "gat1400Exchange/repository" "gat1400Exchange/vo" "net/http" "strings" "time" "github.com/gin-gonic/gin" ) type SubscribeController struct { Repository repository.SubscribeRepository } // 构造函数 func NewSubscribeController() SubscribeController { svr := repository.NewSubscribeRepository() controller := SubscribeController{svr} return controller } func (s SubscribeController) Subscribes(c *gin.Context) { var req vo.RequestSubscribe if err := c.BindJSON(&req); err != nil { c.AbortWithStatus(http.StatusBadRequest) return } fromId := c.GetHeader("User-Identify") var rsp vo.ResponseStatusList for idx, sub := range req.SubscribeListObject.SubscribeObject { if err := s.Repository.CreateSubscribe(fromId, &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 for _, id := range strings.Split(idList, ",") { if err := s.Repository.DeleteSubscribe(id); err == nil { rsp.ResponseStatusObject = append(rsp.ResponseStatusObject, vo.ResponseStatus{ RequestURL: c.FullPath(), StatusCode: vo.StatusSuccess, StatusString: vo.StatusString[vo.StatusSuccess], Id: id, 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) Notifications(c *gin.Context) { data, err := c.GetRawData() if err != nil { } fmt.Println("Notifications:", string(data)) c.JSON(http.StatusOK, gin.H{"ResponseStatusListObject": ""}) }