typemapper

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2022 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	NotFoundField = errors.New("Field not found")
)

Functions

This section is empty.

Types

type CustomQueryTypeBuilder

type CustomQueryTypeBuilder interface {
	// Optional method to build QueryType
	SetValidateValuesFunc(f ValidateValuesFunc) CustomQueryTypeBuilder
	// Optional method to build QueryType
	SetFieldFunc(f ValidateFieldFunc) CustomQueryTypeBuilder
	// Required method to build QueryType
	SetTypeMapperFunc(f TypeMapperFunc) CustomQueryTypeBuilder
	// Must build panic if some field are not set
	MustBuild() QueryTypeMapper

	Build() (QueryTypeMapper, error)
}

func NewCustomQueryTypeBuilder

func NewCustomQueryTypeBuilder() CustomQueryTypeBuilder

type QueryTypeFactory

type QueryTypeFactory struct {
	Querys map[string]QueryTypeMapper
}

func NewQueryTypeFactory

func NewQueryTypeFactory() *QueryTypeFactory

func (*QueryTypeFactory) AddField

func (q *QueryTypeFactory) AddField(field string, queryType QueryTypeMapper) *QueryTypeFactory

func (*QueryTypeFactory) AddQueryTypeMapperField

func (q *QueryTypeFactory) AddQueryTypeMapperField(field string, queryType QueryTypeMapper)

Implement Factory interface

func (*QueryTypeFactory) MapField

func (q *QueryTypeFactory) MapField(field string, values []string) (interface{}, error)

MapField map a field

cathable errors:

NotFoundField

func (*QueryTypeFactory) MapRegexField

func (q *QueryTypeFactory) MapRegexField(field string, values []string) (interface{}, error)

func (*QueryTypeFactory) ToQueryTypeMapper

func (q *QueryTypeFactory) ToQueryTypeMapper() QueryTypeMapper

func (*QueryTypeFactory) ToQueryTypeRegexMapper

func (q *QueryTypeFactory) ToQueryTypeRegexMapper() QueryTypeMapper

func (*QueryTypeFactory) Validate

func (q *QueryTypeFactory) Validate(field string, values []string) error

func (*QueryTypeFactory) ValidateRegexField

func (q *QueryTypeFactory) ValidateRegexField(field string, values []string) error

type QueryTypeMapper

type QueryTypeMapper interface {

	// Can validate values count or type if needed(string, json, or users type)
	ValidateValues(values []string) error

	// Can validateField format
	ValidateField(field string) error

	Map(field string, values []string) (interface{}, error)
}

type TypeMapperFunc

type TypeMapperFunc func(field string, values []string) (interface{}, error)

type ValidateFieldFunc

type ValidateFieldFunc func(field string) error

type ValidateValuesFunc

type ValidateValuesFunc func(values []string) error

Jump to

Keyboard shortcuts

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