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  }