diff --git a/assets b/assets index 59890e6b..8a61a8e4 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 59890e6b22d69befa8b742a64967b6bab1bb4a3d +Subproject commit 8a61a8e4c238ed60a107ace23717cf8f03f957f6 diff --git a/routers/controllers/admin.go b/routers/controllers/admin.go index 097a4417..a3ebfa55 100644 --- a/routers/controllers/admin.go +++ b/routers/controllers/admin.go @@ -476,3 +476,14 @@ func AdminDeleteNode(c *gin.Context) { c.JSON(200, ErrorResponse(err)) } } + +// AdminGetNode 获取节点详情 +func AdminGetNode(c *gin.Context) { + var service admin.NodeService + if err := c.ShouldBindUri(&service); err == nil { + res := service.Get() + c.JSON(200, res) + } else { + c.JSON(200, ErrorResponse(err)) + } +} diff --git a/routers/router.go b/routers/router.go index 98883582..a7204c47 100644 --- a/routers/router.go +++ b/routers/router.go @@ -458,6 +458,8 @@ func InitMasterRouter() *gin.Engine { node.PATCH("enable/:id/:desired", controllers.AdminToggleNode) // 删除节点 node.DELETE(":id", controllers.AdminDeleteNode) + // 获取节点 + node.GET(":id", controllers.AdminGetNode) } } diff --git a/service/admin/node.go b/service/admin/node.go index 98f9b582..7d52dbdc 100644 --- a/service/admin/node.go +++ b/service/admin/node.go @@ -83,6 +83,11 @@ func (service *ToggleNodeService) Toggle() serializer.Response { return serializer.DBErr("找不到节点", err) } + // 是否为系统节点 + if node.ID <= 1 { + return serializer.Err(serializer.CodeNoPermissionErr, "系统节点无法更改", err) + } + if err = node.SetStatus(service.Desired); err != nil { return serializer.DBErr("无法更改节点状态", err) } @@ -121,3 +126,13 @@ func (service *NodeService) Delete() serializer.Response { return serializer.Response{} } + +// Get 获取节点详情 +func (service *NodeService) Get() serializer.Response { + node, err := model.GetNodeByID(service.ID) + if err != nil { + return serializer.Err(serializer.CodeNotFound, "节点不存在", err) + } + + return serializer.Response{Data: node} +}