validator

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2021 License: MIT Imports: 12 Imported by: 1

README

Hyperscale Validator Last release Documentation

Go Report Card

Branch Status Coverage
master Build Status Coveralls

The Hyperscale Validator library provides a set of commonly needed data validators. It also provides a simple validator chaining mechanism by which multiple validators may be applied to a single datum in a user-defined order.

Example

Validate by map[string]interface{}

package main

import (
    "fmt"
    "github.com/hyperscale-stack/validator"
)

func main() {
    i := NewInputValidator(map[string][]Validator{
		"email": {
			NewEmailValidator(EmailTimeout(1 * time.Second)),
		},
	})

	errs := i.Validate(map[string]interface{}{
		"email":  "bad",
    })
    // return 
    // map[string][]error{
	//     "email": []error{...},
    // }
}

Validate by url.Values

package main

import (
    "fmt"
    "github.com/hyperscale-stack/validator"
)

func main() {
    i := NewValuesValidator(map[string][]Validator{
		"email": {
			NewEmailValidator(EmailTimeout(1 * time.Second)),
		},
	})

    values := url.Values{}
    values.Set("email", "bad")

	errs := i.Validate(values)
    // return 
    // map[string][]error{
	//     "email": []error{...},
    // }
}

License

Hyperscale Validator is licensed under the MIT license.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EmailOption

type EmailOption func(*emailValidator)

EmailOption type.

func EmailTimeout

func EmailTimeout(timeout time.Duration) EmailOption

EmailTimeout remove all utm_* query parameters.

type InputValidator

type InputValidator interface {
	Validate(input map[string]interface{}) map[string][]error
}

InputValidator interface.

func NewInputValidator

func NewInputValidator(validators map[string][]Validator) InputValidator

NewInputValidator constructor.

type Password

type Password struct {
	Min                int
	Max                int
	RequiredRangeTable map[string][]*unicode.RangeTable
}

Password config options.

type StringLength

type StringLength struct {
	Min int
	Max int
}

StringLength config options.

type Validator

type Validator interface {
	Validate(input interface{}) error
}

Validator interface.

func NewColorValidator

func NewColorValidator() Validator

NewColorValidator constructor.

func NewEmailValidator

func NewEmailValidator(opts ...EmailOption) Validator

NewEmailValidator constructor.

func NewPasswordValidator

func NewPasswordValidator(opts Password) Validator

NewPasswordValidator constructor.

func NewStringLengthValidator

func NewStringLengthValidator(opts StringLength) Validator

NewStringLengthValidator constructor.

func NewUUIDValidator

func NewUUIDValidator() Validator

NewUUIDValidator constructor.

type ValuesValidator

type ValuesValidator interface {
	Validate(values url.Values) map[string][]error
}

ValuesValidator interface.

func NewValuesValidator

func NewValuesValidator(validators map[string][]Validator) ValuesValidator

NewValuesValidator constructor.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL