package controller import ( "bee-config/models" "bee-config/routers" "bee-config/service" "github.com/gin-gonic/gin" "net/http" "path" ) type ( NodeRouter struct { routers.Router } ) const ( basePath = "/nodes" ) var ( AddNode *NodeRouter QueryNode *NodeRouter ) func init() { AddNode = &NodeRouter{ routers.Router{ Methods: []string{http.MethodGet, http.MethodPost}, Path: "add", Handles: []gin.HandlerFunc{addNode}, }, } QueryNode = &NodeRouter{ routers.Router{ Methods: []string{http.MethodGet}, Path: "query", Handles: []gin.HandlerFunc{queryNode}, }, } } func (r *NodeRouter)GetPath() string { return path.Join(basePath, r.Path) } func addNode(c *gin.Context) { address, err := service.AddNode() if nil != err { c.JSON(http.StatusOK, gin.H { "code": 600, "msg": err.Error(), "data": &struct { }{}, }) } else { data := map[string]interface{}{} data["address"] = address c.JSON(http.StatusOK, gin.H { "code": http.StatusOK, "msg": "ok", "data": data, }) } } func queryNode(c *gin.Context) { var node models.BeeNode arr, err := node.FindAll() if nil != err { c.JSON(http.StatusOK, gin.H { "code": 600, "msg": err.Error(), "data": &struct { }{}, }) } else { c.JSON(http.StatusOK, gin.H { "code": http.StatusOK, "msg": "ok", "data": arr, }) } }