github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_banwords_username.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  // BanWordsUsernameValidatorName is name of ban words username
     9  // If email username has ban worlds, the email is invalid
    10  const BanWordsUsernameValidatorName ValidatorName = "BanWordsUsername"
    11  
    12  // BanWordsUsernameErr is text for BanWordsUsernameError.Error
    13  const BanWordsUsernameErr = "BanWordsUsernameError"
    14  
    15  // BanWordsUsernameError is BanWordsUsernameValidatorName error
    16  type BanWordsUsernameError struct{}
    17  
    18  func (BanWordsUsernameError) Error() string {
    19  	return BanWordsUsernameErr
    20  }
    21  
    22  // NewBanWordsUsername instantiates BanWordsUsernameValidatorName validator
    23  func NewBanWordsUsername(inStrings contains.InStrings) Validator {
    24  	return banWordsUsernameValidator{d: inStrings}
    25  }
    26  
    27  type banWordsUsernameValidator struct {
    28  	d contains.InStrings
    29  	AValidatorWithoutDeps
    30  }
    31  
    32  func (w banWordsUsernameValidator) Validate(input Input, _ ...ValidationResult) ValidationResult {
    33  	var err error
    34  	var isContains = w.d.Contains(input.Email().Username())
    35  	if isContains {
    36  		err = BanWordsUsernameError{}
    37  	}
    38  
    39  	return NewResult(!isContains, utils.Errs(err), nil, BanWordsUsernameValidatorName)
    40  }