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  }