mirror of
https://github.com/lzh-1625/go_process_manager.git
synced 2025-10-07 17:01:05 +08:00
Standardization
This commit is contained in:
@@ -51,6 +51,7 @@ func pprofInit(r *gin.Engine) {
|
||||
}
|
||||
|
||||
func routePathInit(r *gin.Engine) {
|
||||
|
||||
apiGroup := r.Group("/api")
|
||||
apiGroup.Use(middle.CheckToken())
|
||||
apiGroup.Use(middle.PanicMiddle())
|
||||
@@ -58,107 +59,114 @@ func routePathInit(r *gin.Engine) {
|
||||
{
|
||||
wsGroup := apiGroup.Group("/ws")
|
||||
{
|
||||
wsGroup.GET("", middle.OprPermission(constants.OPERATION_TERMINAL), api.WsApi.WebsocketHandle)
|
||||
wsGroup.GET("/share", api.WsApi.WebsocketShareHandle)
|
||||
wsGroup.GET("", middle.OprPermission(constants.OPERATION_TERMINAL), bind(api.WsApi.WebsocketHandle, Query))
|
||||
wsGroup.GET("/share", bind(api.WsApi.WebsocketShareHandle, Query))
|
||||
}
|
||||
|
||||
processGroup := apiGroup.Group("/process")
|
||||
{
|
||||
processGroup.DELETE("", middle.OprPermission(constants.OPERATION_STOP), api.ProcApi.KillProcess)
|
||||
processGroup.GET("", api.ProcApi.GetProcessList)
|
||||
processGroup.GET("/wait", middle.ProcessWaitCond.WaitGetMiddel, api.ProcApi.GetProcessList)
|
||||
processGroup.PUT("", middle.OprPermission(constants.OPERATION_START), api.ProcApi.StartProcess)
|
||||
processGroup.PUT("/all", api.ProcApi.StartAllProcess)
|
||||
processGroup.DELETE("/all", api.ProcApi.KillAllProcess)
|
||||
processGroup.POST("/share", middle.RolePermission(constants.ROLE_ADMIN), api.ProcApi.ProcessCreateShare)
|
||||
processGroup.GET("/control", middle.RolePermission(constants.ROLE_ROOT), middle.ProcessWaitCond.WaitTriggerMiddel, api.ProcApi.ProcessControl)
|
||||
processGroup.DELETE("", middle.OprPermission(constants.OPERATION_STOP), bind(api.ProcApi.KillProcess, Query))
|
||||
processGroup.GET("", bind(api.ProcApi.GetProcessList, None))
|
||||
processGroup.GET("/wait", middle.ProcessWaitCond.WaitGetMiddel, bind(api.ProcApi.GetProcessList, None))
|
||||
processGroup.PUT("", middle.OprPermission(constants.OPERATION_START), bind(api.ProcApi.StartProcess, Body))
|
||||
processGroup.PUT("/all", bind(api.ProcApi.StartAllProcess, None))
|
||||
processGroup.DELETE("/all", bind(api.ProcApi.KillAllProcess, None))
|
||||
processGroup.POST("/share", middle.RolePermission(constants.ROLE_ADMIN), bind(api.ProcApi.ProcessCreateShare, Body))
|
||||
processGroup.GET("/control", middle.RolePermission(constants.ROLE_ROOT), middle.ProcessWaitCond.WaitTriggerMiddel, bind(api.ProcApi.ProcessControl, Query))
|
||||
|
||||
proConfigGroup := processGroup.Group("/config")
|
||||
{
|
||||
proConfigGroup.POST("", middle.RolePermission(constants.ROLE_ROOT), middle.ProcessWaitCond.WaitTriggerMiddel, api.ProcApi.CreateNewProcess)
|
||||
proConfigGroup.DELETE("", middle.RolePermission(constants.ROLE_ROOT), middle.ProcessWaitCond.WaitTriggerMiddel, api.ProcApi.DeleteNewProcess)
|
||||
proConfigGroup.PUT("", middle.RolePermission(constants.ROLE_ROOT), api.ProcApi.UpdateProcessConfig)
|
||||
proConfigGroup.GET("", middle.RolePermission(constants.ROLE_ADMIN), api.ProcApi.GetProcessConfig)
|
||||
proConfigGroup.POST("", middle.RolePermission(constants.ROLE_ROOT), middle.ProcessWaitCond.WaitTriggerMiddel, bind(api.ProcApi.CreateNewProcess, Body))
|
||||
proConfigGroup.DELETE("", middle.RolePermission(constants.ROLE_ROOT), middle.ProcessWaitCond.WaitTriggerMiddel, bind(api.ProcApi.DeleteNewProcess, Query))
|
||||
proConfigGroup.PUT("", middle.RolePermission(constants.ROLE_ROOT), bind(api.ProcApi.UpdateProcessConfig, Body))
|
||||
proConfigGroup.GET("", middle.RolePermission(constants.ROLE_ADMIN), bind(api.ProcApi.GetProcessConfig, Query))
|
||||
}
|
||||
}
|
||||
|
||||
taskGroup := apiGroup.Group("/task")
|
||||
{
|
||||
taskGroup.GET("", middle.RolePermission(constants.ROLE_ADMIN), api.TaskApi.GetTaskById)
|
||||
taskGroup.GET("/all", middle.RolePermission(constants.ROLE_ADMIN), api.TaskApi.GetTaskList)
|
||||
taskGroup.GET("/all/wait", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitGetMiddel, api.TaskApi.GetTaskList)
|
||||
taskGroup.POST("", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitTriggerMiddel, api.TaskApi.CreateTask)
|
||||
taskGroup.DELETE("", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitTriggerMiddel, api.TaskApi.DeleteTaskById)
|
||||
taskGroup.PUT("", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitTriggerMiddel, api.TaskApi.EditTask)
|
||||
taskGroup.PUT("/enable", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitTriggerMiddel, api.TaskApi.EditTaskEnable)
|
||||
taskGroup.GET("/start", middle.RolePermission(constants.ROLE_ADMIN), api.TaskApi.StartTask)
|
||||
taskGroup.GET("/stop", middle.RolePermission(constants.ROLE_ADMIN), api.TaskApi.StopTask)
|
||||
taskGroup.POST("/key", middle.RolePermission(constants.ROLE_ADMIN), api.TaskApi.CreateTaskApiKey)
|
||||
taskGroup.GET("/api-key/:key", api.TaskApi.RunTaskByKey)
|
||||
taskGroup.GET("", middle.RolePermission(constants.ROLE_ADMIN), bind(api.TaskApi.GetTaskById, Query))
|
||||
taskGroup.GET("/all", middle.RolePermission(constants.ROLE_ADMIN), bind(api.TaskApi.GetTaskList, None))
|
||||
taskGroup.GET("/all/wait", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitGetMiddel, bind(api.TaskApi.GetTaskList, None))
|
||||
taskGroup.POST("", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitTriggerMiddel, bind(api.TaskApi.CreateTask, Body))
|
||||
taskGroup.DELETE("", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitTriggerMiddel, bind(api.TaskApi.DeleteTaskById, Query))
|
||||
taskGroup.PUT("", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitTriggerMiddel, bind(api.TaskApi.EditTask, Body))
|
||||
taskGroup.PUT("/enable", middle.RolePermission(constants.ROLE_ADMIN), middle.TaskWaitCond.WaitTriggerMiddel, bind(api.TaskApi.EditTaskEnable, Body))
|
||||
taskGroup.GET("/start", middle.RolePermission(constants.ROLE_ADMIN), bind(api.TaskApi.StartTask, Query))
|
||||
taskGroup.GET("/stop", middle.RolePermission(constants.ROLE_ADMIN), bind(api.TaskApi.StopTask, Query))
|
||||
taskGroup.POST("/key", middle.RolePermission(constants.ROLE_ADMIN), bind(api.TaskApi.CreateTaskApiKey, Body))
|
||||
taskGroup.GET("/api-key/:key", bind(api.TaskApi.RunTaskByKey, None))
|
||||
}
|
||||
|
||||
userGroup := apiGroup.Group("/user")
|
||||
{
|
||||
userGroup.POST("/login", api.UserApi.LoginHandler)
|
||||
userGroup.POST("", middle.RolePermission(constants.ROLE_ROOT), api.UserApi.CreateUser)
|
||||
userGroup.PUT("/password", middle.RolePermission(constants.ROLE_USER), api.UserApi.ChangePassword)
|
||||
userGroup.DELETE("", middle.RolePermission(constants.ROLE_ROOT), api.UserApi.DeleteUser)
|
||||
userGroup.GET("", middle.RolePermission(constants.ROLE_ROOT), api.UserApi.GetUserList)
|
||||
userGroup.POST("/login", bind(api.UserApi.LoginHandler, Body))
|
||||
userGroup.POST("", middle.RolePermission(constants.ROLE_ROOT), bind(api.UserApi.CreateUser, Body))
|
||||
userGroup.PUT("/password", middle.RolePermission(constants.ROLE_USER), bind(api.UserApi.ChangePassword, Body))
|
||||
userGroup.DELETE("", middle.RolePermission(constants.ROLE_ROOT), bind(api.UserApi.DeleteUser, Query))
|
||||
userGroup.GET("", middle.RolePermission(constants.ROLE_ROOT), bind(api.UserApi.GetUserList, None))
|
||||
}
|
||||
|
||||
pushGroup := apiGroup.Group("/push").Use(middle.RolePermission(constants.ROLE_ADMIN))
|
||||
{
|
||||
pushGroup.GET("/list", api.PushApi.GetPushList)
|
||||
pushGroup.GET("", api.PushApi.GetPushById)
|
||||
pushGroup.POST("", api.PushApi.AddPushConfig)
|
||||
pushGroup.PUT("", api.PushApi.UpdatePushConfig)
|
||||
pushGroup.DELETE("", api.PushApi.DeletePushConfig)
|
||||
pushGroup.GET("/list", bind(api.PushApi.GetPushList, None))
|
||||
pushGroup.GET("", bind(api.PushApi.GetPushById, Query))
|
||||
pushGroup.POST("", bind(api.PushApi.AddPushConfig, Body))
|
||||
pushGroup.PUT("", bind(api.PushApi.UpdatePushConfig, Body))
|
||||
pushGroup.DELETE("", bind(api.PushApi.DeletePushConfig, Query))
|
||||
}
|
||||
|
||||
fileGroup := apiGroup.Group("/file").Use(middle.RolePermission(constants.ROLE_ADMIN))
|
||||
{
|
||||
fileGroup.GET("/list", api.FileApi.FilePathHandler)
|
||||
fileGroup.PUT("", api.FileApi.FileWriteHandler)
|
||||
fileGroup.GET("", api.FileApi.FileReadHandler)
|
||||
fileGroup.GET("/list", bind(api.FileApi.FilePathHandler, Query))
|
||||
fileGroup.PUT("", bind(api.FileApi.FileWriteHandler, None))
|
||||
fileGroup.GET("", bind(api.FileApi.FileReadHandler, Query))
|
||||
}
|
||||
|
||||
permissionGroup := apiGroup.Group("/permission").Use(middle.RolePermission(constants.ROLE_ROOT))
|
||||
{
|
||||
permissionGroup.GET("/list", api.PermissionApi.GetPermissionList)
|
||||
permissionGroup.PUT("", middle.ProcessWaitCond.WaitTriggerMiddel, api.PermissionApi.EditPermssion)
|
||||
permissionGroup.GET("/list", bind(api.PermissionApi.GetPermissionList, Query))
|
||||
permissionGroup.PUT("", middle.ProcessWaitCond.WaitTriggerMiddel, bind(api.PermissionApi.EditPermssion, Body))
|
||||
}
|
||||
|
||||
logGroup := apiGroup.Group("/log").Use(middle.RolePermission(constants.ROLE_USER))
|
||||
{
|
||||
logGroup.POST("", api.LogApi.GetLog)
|
||||
logGroup.GET("/running", api.LogApi.GetRunningLog)
|
||||
logGroup.POST("", bind(api.LogApi.GetLog, Body))
|
||||
logGroup.GET("/running", bind(api.LogApi.GetRunningLog, None))
|
||||
}
|
||||
|
||||
configGroup := apiGroup.Group("/config").Use(middle.RolePermission(constants.ROLE_ROOT))
|
||||
{
|
||||
configGroup.GET("", api.ConfigApi.GetSystemConfiguration)
|
||||
configGroup.PUT("", api.ConfigApi.SetSystemConfiguration)
|
||||
configGroup.PUT("/es", api.ConfigApi.EsConfigReload)
|
||||
configGroup.GET("", bind(api.ConfigApi.GetSystemConfiguration, None))
|
||||
configGroup.PUT("", bind(api.ConfigApi.SetSystemConfiguration, None))
|
||||
configGroup.PUT("/es", bind(api.ConfigApi.EsConfigReload, None))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func bind[T any](fn func(*gin.Context, *T) error, bindOption int) func(*gin.Context) {
|
||||
const (
|
||||
None = 0
|
||||
Header = 1 << iota
|
||||
Body
|
||||
Query
|
||||
)
|
||||
|
||||
func bind[T any](fn func(*gin.Context, T) error, bindOption int) func(*gin.Context) {
|
||||
return func(ctx *gin.Context) {
|
||||
var req *T
|
||||
if bindOption&constants.BIND_OPTION_BODY != 0 {
|
||||
var req T
|
||||
if bindOption&Body != 0 {
|
||||
if err := ctx.BindJSON(req); err != nil {
|
||||
rErr(ctx, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
if bindOption&constants.BIND_OPTION_HEADER != 0 {
|
||||
if bindOption&Header != 0 {
|
||||
if err := ctx.BindHeader(req); err != nil {
|
||||
rErr(ctx, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
if bindOption&constants.BIND_OPTION_QUERY != 0 {
|
||||
if bindOption&Query != 0 {
|
||||
if err := ctx.BindQuery(req); err != nil {
|
||||
rErr(ctx, err)
|
||||
return
|
||||
@@ -167,9 +175,15 @@ func bind[T any](fn func(*gin.Context, *T) error, bindOption int) func(*gin.Cont
|
||||
err := fn(ctx, req)
|
||||
if err != nil {
|
||||
rErr(ctx, err)
|
||||
return
|
||||
}
|
||||
if ctx.Writer.Status() == 0 {
|
||||
ctx.JSON(200, gin.H{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func rErr(ctx *gin.Context, err error) {
|
||||
|
Reference in New Issue
Block a user