package routes import ( "github.com/gofiber/fiber/v2" "github.com/break/junhong_cmp_fiber/internal/handler/admin" "github.com/break/junhong_cmp_fiber/internal/model" "github.com/break/junhong_cmp_fiber/pkg/openapi" ) // registerRoleRoutes 注册角色相关路由 func registerRoleRoutes(api fiber.Router, h *admin.RoleHandler, doc *openapi.Generator, basePath string) { roles := api.Group("/roles") groupPath := basePath + "/roles" // 角色 CRUD Register(roles, doc, groupPath, "POST", "", h.Create, RouteSpec{ Summary: "创建角色", Tags: []string{"角色"}, Input: new(model.CreateRoleRequest), Output: new(model.RoleResponse), Auth: true, }) Register(roles, doc, groupPath, "GET", "", h.List, RouteSpec{ Summary: "角色列表", Tags: []string{"角色"}, Input: new(model.RoleListRequest), Output: new(model.RolePageResult), Auth: true, }) Register(roles, doc, groupPath, "GET", "/:id", h.Get, RouteSpec{ Summary: "获取角色详情", Tags: []string{"角色"}, Input: new(model.IDReq), Output: new(model.RoleResponse), Auth: true, }) Register(roles, doc, groupPath, "PUT", "/:id", h.Update, RouteSpec{ Summary: "更新角色", Tags: []string{"角色"}, Input: new(model.UpdateRoleParams), Output: new(model.RoleResponse), Auth: true, }) Register(roles, doc, groupPath, "PUT", "/:id/status", h.UpdateStatus, RouteSpec{ Summary: "更新角色状态", Tags: []string{"角色"}, Input: new(model.UpdateRoleStatusParams), Output: nil, Auth: true, }) Register(roles, doc, groupPath, "DELETE", "/:id", h.Delete, RouteSpec{ Summary: "删除角色", Tags: []string{"角色"}, Input: new(model.IDReq), Output: nil, Auth: true, }) // 角色-权限关联 Register(roles, doc, groupPath, "POST", "/:id/permissions", h.AssignPermissions, RouteSpec{ Summary: "分配权限", Tags: []string{"角色"}, Input: new(model.AssignPermissionsParams), Output: nil, Auth: true, }) Register(roles, doc, groupPath, "GET", "/:id/permissions", h.GetPermissions, RouteSpec{ Summary: "获取角色权限", Tags: []string{"角色"}, Input: new(model.IDReq), Output: new([]model.Permission), Auth: true, }) Register(roles, doc, groupPath, "DELETE", "/:role_id/permissions/:perm_id", h.RemovePermission, RouteSpec{ Summary: "移除权限", Tags: []string{"角色"}, Input: new(model.RemovePermissionParams), Output: nil, Auth: true, }) }