github.com/infraboard/keyauth@v0.8.1/apps/role/request_ext.go (about) 1 package role 2 3 import ( 4 "fmt" 5 "net/http" 6 7 "github.com/go-playground/validator/v10" 8 "github.com/infraboard/mcube/exception" 9 "github.com/infraboard/mcube/http/request" 10 ) 11 12 // use a single instance of Validate, it caches struct info 13 var ( 14 validate = validator.New() 15 ) 16 17 // NewQueryRoleRequestFromHTTP 列表查询请求 18 func NewQueryRoleRequestFromHTTP(r *http.Request) *QueryRoleRequest { 19 page := request.NewPageRequestFromHTTP(r) 20 21 req := NewQueryRoleRequest(page) 22 return req 23 } 24 25 // NewQueryRoleRequest 列表查询请求 26 func NewQueryRoleRequest(pageReq *request.PageRequest) *QueryRoleRequest { 27 return &QueryRoleRequest{ 28 Page: pageReq, 29 } 30 } 31 32 // Validate todo 33 func (req *QueryRoleRequest) Validate() error { 34 return nil 35 } 36 37 // NewDescribeRoleRequestWithID todo 38 func NewDescribeRoleRequestWithID(id string) *DescribeRoleRequest { 39 return &DescribeRoleRequest{ 40 Id: id, 41 WithPermissions: false, 42 } 43 } 44 45 // NewDescribeRoleRequestWithName todo 46 func NewDescribeRoleRequestWithName(name string) *DescribeRoleRequest { 47 return &DescribeRoleRequest{ 48 Name: name, 49 WithPermissions: false, 50 } 51 } 52 53 // Validate todo 54 func (req *DescribeRoleRequest) Validate() error { 55 if req.Id == "" && req.Name == "" { 56 return fmt.Errorf("id or name required") 57 } 58 59 return nil 60 } 61 62 // NewDeleteRoleWithID todo 63 func NewDeleteRoleWithID(id string) *DeleteRoleRequest { 64 return &DeleteRoleRequest{ 65 Id: id, 66 } 67 } 68 69 // NewAddPermissionToRoleRequest todo 70 func NewAddPermissionToRoleRequest() *AddPermissionToRoleRequest { 71 return &AddPermissionToRoleRequest{ 72 Permissions: []*CreatePermssionRequest{}, 73 } 74 } 75 76 func (req *AddPermissionToRoleRequest) Validate() error { 77 return validate.Struct(req) 78 } 79 80 func (req *AddPermissionToRoleRequest) Length() int { 81 return len(req.Permissions) 82 } 83 84 // NewRemovePermissionFromRoleRequest todo 85 func NewRemovePermissionFromRoleRequest() *RemovePermissionFromRoleRequest { 86 return &RemovePermissionFromRoleRequest{ 87 PermissionId: []string{}, 88 } 89 } 90 91 func (req *RemovePermissionFromRoleRequest) Validate() error { 92 return validate.Struct(req) 93 } 94 95 // NewQueryPermissionRequest todo 96 func NewQueryPermissionRequest(pageReq *request.PageRequest) *QueryPermissionRequest { 97 return &QueryPermissionRequest{ 98 Page: pageReq, 99 } 100 } 101 102 // NewQueryPermissionRequestFromHTTP 列表查询请求 103 func NewQueryPermissionRequestFromHTTP(r *http.Request) *QueryPermissionRequest { 104 page := request.NewPageRequestFromHTTP(r) 105 req := NewQueryPermissionRequest(page) 106 107 return req 108 } 109 110 func NewDescribePermissionRequestWithID(id string) *DescribePermissionRequest { 111 return &DescribePermissionRequest{Id: id} 112 } 113 114 func (req *DescribePermissionRequest) Validate() error { 115 if req.Id == "" { 116 return exception.NewBadRequest("id required") 117 } 118 return nil 119 } 120 121 func NewUpdatePermissionRequest() *UpdatePermissionRequest { 122 return &UpdatePermissionRequest{} 123 } 124 125 func (req *UpdatePermissionRequest) Validate() error { 126 if req.Id == "" { 127 return exception.NewBadRequest("id required") 128 } 129 130 return nil 131 }