github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_blacklist_email.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 // BlackListEmailsValidatorName is name of black list emails 9 // It checks an email in list. If the address is in, the email is invalid. 10 const BlackListEmailsValidatorName ValidatorName = "BlackListEmails" 11 12 // BlackListEmailsErr is text for BlackListEmailsError.Error 13 const BlackListEmailsErr = "BlackListEmailsError" 14 15 // BlackListEmailsError is BlackListEmailsValidatorName error 16 type BlackListEmailsError struct{} 17 18 func (BlackListEmailsError) Error() string { 19 return BlackListEmailsErr 20 } 21 22 // NewBlackListEmailsValidator instantiates BlackListEmailsValidatorName validator 23 func NewBlackListEmailsValidator(d contains.InSet) Validator { 24 return blackListEmailsValidator{d: d} 25 } 26 27 type blackListEmailsValidator struct { 28 d contains.InSet 29 AValidatorWithoutDeps 30 } 31 32 func (w blackListEmailsValidator) Validate(input Input, _ ...ValidationResult) ValidationResult { 33 var err error 34 var isContains = w.d.Contains(input.Email().String()) 35 if isContains { 36 err = BlackListEmailsError{} 37 } 38 39 return NewResult(!isContains, utils.Errs(err), nil, BlackListEmailsValidatorName) 40 }