diff --git a/assets b/assets index fe6297c9..59890e6b 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit fe6297c952319762a8f27f6a8c121b513d3859c0 +Subproject commit 59890e6b22d69befa8b742a64967b6bab1bb4a3d diff --git a/models/node.go b/models/node.go index bf831252..2eebf5c4 100644 --- a/models/node.go +++ b/models/node.go @@ -18,7 +18,7 @@ type Node struct { Aria2Options string `gorm:"type:text"` // 离线下载配置 // 数据库忽略字段 - Aria2OptionsSerialized Aria2Option `gorm:"-" json:"-"` + Aria2OptionsSerialized Aria2Option `gorm:"-"` } // Aria2Option 非公有的Aria2配置属性 diff --git a/routers/controllers/admin.go b/routers/controllers/admin.go index 4f3440f6..aab8a40b 100644 --- a/routers/controllers/admin.go +++ b/routers/controllers/admin.go @@ -443,3 +443,14 @@ func AdminListNodes(c *gin.Context) { c.JSON(200, ErrorResponse(err)) } } + +// AdminAddNode 新建节点 +func AdminAddNode(c *gin.Context) { + var service admin.AddNodeService + if err := c.ShouldBindJSON(&service); err == nil { + res := service.Add() + c.JSON(200, res) + } else { + c.JSON(200, ErrorResponse(err)) + } +} diff --git a/routers/router.go b/routers/router.go index 638aa757..01071d34 100644 --- a/routers/router.go +++ b/routers/router.go @@ -448,9 +448,10 @@ func InitMasterRouter() *gin.Engine { { // 列出从机节点 node.POST("list", controllers.AdminListNodes) - // 列出从机节点 node.POST("aria2/test", controllers.AdminTestAria2) + // 创建/保存节点 + node.POST("", controllers.AdminAddNode) } } diff --git a/service/admin/node.go b/service/admin/node.go index 6f70c7b1..eaf8abba 100644 --- a/service/admin/node.go +++ b/service/admin/node.go @@ -7,6 +7,26 @@ import ( "strings" ) +// AddNodeService 节点添加服务 +type AddNodeService struct { + Node model.Node `json:"node" binding:"required"` +} + +// Add 添加节点 +func (service *AddNodeService) Add() serializer.Response { + if service.Node.ID > 0 { + if err := model.DB.Save(&service.Node).Error; err != nil { + return serializer.ParamErr("节点保存失败", err) + } + } else { + if err := model.DB.Create(&service.Node).Error; err != nil { + return serializer.ParamErr("节点添加失败", err) + } + } + + return serializer.Response{Data: service.Node.ID} +} + // Nodes 列出从机节点 func (service *AdminListService) Nodes() serializer.Response { var res []model.Node