Files
card-to-iban/backend/internal/card/validation.go

36 lines
616 B
Go

package card
import "errors"
var (
ErrCardRequired = errors.New("card number is required")
ErrCardLength = errors.New("card number must contain exactly 16 digits")
ErrCardNumeric = errors.New("card number must contain only digits")
)
func Validate(number string) error {
if number == "" {
return ErrCardRequired
}
if len(number) != 16 {
return ErrCardLength
}
for _, char := range number {
if char < '0' || char > '9' {
return ErrCardNumeric
}
}
return nil
}
func Mask(number string) string {
if Validate(number) != nil {
return ""
}
return number[:6] + "******" + number[12:]
}