github.com/status-im/status-go@v1.1.0/protocol/requests/remove_role_from_member.go (about)

     1  package requests
     2  
     3  import (
     4  	"errors"
     5  
     6  	"github.com/status-im/status-go/eth-node/types"
     7  	"github.com/status-im/status-go/protocol/protobuf"
     8  )
     9  
    10  var ErrRemoveRoleFromMemberInvalidCommunityID = errors.New("remove-role-from-member: invalid community id")
    11  var ErrRemoveRoleFromMemberInvalidUser = errors.New("remove-role-from-member: invalid user id")
    12  var ErrRemoveRoleFromMemberInvalidRole = errors.New("remove-role-from-member: invalid role")
    13  
    14  type RemoveRoleFromMember struct {
    15  	CommunityID types.HexBytes                 `json:"communityId"`
    16  	User        types.HexBytes                 `json:"user"`
    17  	Role        protobuf.CommunityMember_Roles `json:"role"`
    18  }
    19  
    20  func (r *RemoveRoleFromMember) Validate() error {
    21  	if len(r.CommunityID) == 0 {
    22  		return ErrRemoveRoleFromMemberInvalidCommunityID
    23  	}
    24  
    25  	if len(r.User) == 0 {
    26  		return ErrRemoveRoleFromMemberInvalidUser
    27  	}
    28  
    29  	if r.Role == protobuf.CommunityMember_ROLE_NONE {
    30  		return ErrRemoveRoleFromMemberInvalidRole
    31  	}
    32  
    33  	return nil
    34  }