package route import ( "kpt-pasture/http/handler" "kpt-pasture/http/handler/system" "kpt-pasture/http/middleware" "github.com/gin-gonic/gin" ) func SystemAPI(opts ...func(engine *gin.Engine)) func(s *gin.Engine) { return func(s *gin.Engine) { for _, opt := range opts { opt(s) } // Not Found s.NoRoute(handler.Handle404) // Health Check s.GET("/check", handler.Health) s.POST("/api/v1/login", system.Login) s.Static("/api/v1/files", "./files") // system API 组 系统用户 systemRoute := authRouteGroup(s, "/api/v1/system/") systemRoute.POST("/user/list", system.SearchSystemUserList) systemRoute.PUT("/user/is_show/:id", system.IsShowSystemUser) systemRoute.DELETE("/user/:id", system.DeleteUser) systemRoute.POST("/user/createOrUpdate", system.UserCreateOrUpdate) systemRoute.POST("/user/rest/password", system.ResetPasswordSystemUser) systemRoute.GET("/user/role/:user_id", system.UserRole) systemRoute.POST("/user/role/save", system.UserRoleSave) // 系统角色 systemRoute.POST("/role/list", system.SearchSystemRoleList) systemRoute.DELETE("/role/:id", system.DeleteSystemRole) systemRoute.PUT("/role/is_show/:id", system.IsShowSystemRole) systemRoute.POST("/role/createOrUpdate", system.RoleCreateOrUpdate) systemRoute.GET("/role/menu/:id", system.GetRoleMenu) systemRoute.POST("/role/menu/save", system.RoleMenuSave) systemRoute.GET("/role/list", system.GetRoleList) // 系统菜单权限 systemRoute.POST("/menu/list", system.SearchSystemMenuList) systemRoute.DELETE("/menu/:id", system.DeleteSystemMenu) systemRoute.POST("/menu/createOrUpdate", system.CreatedOrUpdateSystemMenu) systemRoute.POST("/menu/tree", system.GetSystemMenuTree) // 系统部门 systemRoute.POST("/dept/list", system.DeptList) systemRoute.DELETE("/dept/:id", system.DepIsShow) systemRoute.POST("/dept/createOrUpdate", system.DepCreateOrUpdate) // 登录用户的相关接口 systemRoute.GET("/user/menu", handler.GetUserMenu) systemRoute.POST("/user/logout", handler.Logout) } } func authRouteGroup(s *gin.Engine, relativePath string) *gin.RouterGroup { group := s.Group(relativePath) // 中间件鉴权 group.Use(middleware.RequireAdmin(), middleware.CORS(), middleware.GinLogger()) return group }