github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_role.go (about) 1 package ev 2 3 import ( 4 "github.com/go-email-validator/go-email-validator/pkg/ev/contains" 5 "github.com/go-email-validator/go-email-validator/pkg/ev/utils" 6 ) 7 8 // RoleValidatorName is name of role validator 9 const RoleValidatorName ValidatorName = "RoleValidator" 10 11 // RoleErr is text for RoleError.Error 12 const RoleErr = "RoleError" 13 14 // RoleError is error of RoleValidatorName 15 type RoleError struct{} 16 17 func (RoleError) Error() string { 18 return RoleErr 19 } 20 21 // NewRoleValidator instantiates RoleValidatorName 22 func NewRoleValidator(r contains.InSet) Validator { 23 return roleValidator{r: r} 24 } 25 26 type roleValidator struct { 27 AValidatorWithoutDeps 28 r contains.InSet 29 } 30 31 func (r roleValidator) Validate(input Input, _ ...ValidationResult) ValidationResult { 32 var err error 33 var hasRole = r.r.Contains(input.Email().Username()) 34 if hasRole { 35 err = RoleError{} 36 } 37 38 return NewResult(!hasRole, utils.Errs(err), nil, RoleValidatorName) 39 }