github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_whitelist_domain.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 // WhiteListDomainValidatorName name of whiteListValidator 9 const WhiteListDomainValidatorName ValidatorName = "WhiteListDomain" 10 11 // WhiteListErr is text for WhiteListError.Error 12 const WhiteListErr = "WhiteListError" 13 14 // WhiteListError is error for WhiteListDomainValidatorName 15 type WhiteListError struct{} 16 17 func (WhiteListError) Error() string { 18 return WhiteListErr 19 } 20 21 // NewWhiteListValidator instantiates WhiteListDomainValidatorName 22 func NewWhiteListValidator(d contains.InSet) Validator { 23 return whiteListValidator{d: d} 24 } 25 26 type whiteListValidator struct { 27 d contains.InSet 28 AValidatorWithoutDeps 29 } 30 31 func (w whiteListValidator) Validate(input Input, _ ...ValidationResult) ValidationResult { 32 var err error 33 var isContains = w.d.Contains(input.Email().Domain()) 34 if !isContains { 35 err = WhiteListError{} 36 } 37 38 return NewResult(isContains, utils.Errs(err), nil, WhiteListDomainValidatorName) 39 }