64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
|
// Copyright (C) 2018 Storj Labs, Inc.
|
||
|
// See LICENSE for copying information.
|
||
|
|
||
|
package satellite
|
||
|
|
||
|
import (
|
||
|
"unicode"
|
||
|
|
||
|
"github.com/zeebo/errs"
|
||
|
|
||
|
"storj.io/storj/pkg/utils"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
passMinLength = 6
|
||
|
passMinNumberCount = 1
|
||
|
passMinAZCount = 1
|
||
|
)
|
||
|
|
||
|
// ErrValidation validation related error class
|
||
|
var ErrValidation = errs.Class("validation error")
|
||
|
|
||
|
// validationError is slice of ErrValidation class errors
|
||
|
type validationErrors []error
|
||
|
|
||
|
// Add new ErrValidation err
|
||
|
func (validation *validationErrors) Add(format string, args ...interface{}) {
|
||
|
*validation = append(*validation, ErrValidation.New(format, args))
|
||
|
}
|
||
|
|
||
|
// AddWrap adds new ErrValidation wrapped err
|
||
|
func (validation *validationErrors) AddWrap(err error) {
|
||
|
*validation = append(*validation, ErrValidation.Wrap(err))
|
||
|
}
|
||
|
|
||
|
// Combine returns combined validation errors
|
||
|
func (validation *validationErrors) Combine() error {
|
||
|
return utils.CombineErrors(*validation...)
|
||
|
}
|
||
|
|
||
|
// countNumerics returns total number of digits in string
|
||
|
func countNumerics(s string) int {
|
||
|
total := 0
|
||
|
for _, r := range s {
|
||
|
if unicode.IsDigit(r) {
|
||
|
total++
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return total
|
||
|
}
|
||
|
|
||
|
// countLetters returns total number of letters in string
|
||
|
func countLetters(s string) int {
|
||
|
total := 0
|
||
|
for _, r := range s {
|
||
|
if unicode.IsLetter(r) {
|
||
|
total++
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return total
|
||
|
}
|