Documentation
¶
Index ¶
- Variables
- func IsExactMatchOperator(operator string) bool
- func IsInvertingOperator(operator string) bool
- func Render(generator IGenerator, collectionName string, filter *Filter) ([]byte, error)
- func SplitModifierToken(in string) (string, string)
- type Aggregate
- type Aggregation
- type ConjunctionType
- type Criterion
- type Filter
- func All() *Filter
- func Copy(other *Filter) Filter
- func FromMap(in map[string]interface{}) (*Filter, error)
- func MakeFilter(specs ...string) Filter
- func MustParse(in interface{}) *Filter
- func New() *Filter
- func Null() *Filter
- func Parse(in interface{}) (*Filter, error)
- func ParseSpec(spec string) (*Filter, error)
- func (self *Filter) AddCriteria(criteria ...Criterion) *Filter
- func (self *Filter) ApplyOptions(in interface{}) error
- func (self *Filter) BoundedBy(limit int, offset int) *Filter
- func (self *Filter) CriteriaFields() []string
- func (self *Filter) GetFirstValue() (interface{}, bool)
- func (self *Filter) GetIdentityValue() (interface{}, bool)
- func (self *Filter) GetSort() []SortBy
- func (self *Filter) GetValues(field string) ([]interface{}, bool)
- func (self *Filter) IdOnly() bool
- func (self *Filter) IsMatchAll() bool
- func (self *Filter) MatchesRecord(record *dal.Record) bool
- func (self *Filter) NewFromMap(in map[string]interface{}) (*Filter, error)
- func (self *Filter) NewFromSpec(specs ...string) (*Filter, error)
- func (self *Filter) SortBy(fields ...string) *Filter
- func (self *Filter) String() string
- func (self *Filter) WithFields(fields ...string) *Filter
- type Generator
- type IGenerator
- type NormalizerFunc
- type SortBy
Constants ¶
This section is empty.
Variables ¶
View Source
var AllValue = `all`
View Source
var CriteriaSeparator = `/`
View Source
var DefaultIdentityField = `id`
View Source
var DefaultNormalizerFunc = func(in string) string { in = strings.ToLower(in) return rxCharFilter.ReplaceAllString(in, ``) }
View Source
var FieldLengthDelimiter = `#`
View Source
var FieldTermSeparator = `/`
View Source
var ModifierDelimiter = `:`
View Source
var QueryUnescapeValues = false
View Source
var SortAscending = `+`
View Source
var SortDescending = `-`
View Source
var ValueSeparator = `|`
Functions ¶
func IsExactMatchOperator ¶
func IsInvertingOperator ¶
func Render ¶
func Render(generator IGenerator, collectionName string, filter *Filter) ([]byte, error)
func SplitModifierToken ¶
Types ¶
type Aggregate ¶
type Aggregate struct {
Aggregation Aggregation
Field string
}
type Aggregation ¶
type Aggregation int
const ( First Aggregation = iota Last Minimum Maximum Sum Average Count )
type ConjunctionType ¶
type ConjunctionType string
const ( AndConjunction ConjunctionType = `` OrConjunction = `or` )
type Criterion ¶
type Criterion struct {
Type dal.Type `json:"type,omitempty"`
Length int `json:"length,omitempty"`
Field string `json:"field"`
Operator string `json:"operator,omitempty"`
Values []interface{} `json:"values"`
Aggregation Aggregation `json:"aggregation,omitempty"`
}
func (*Criterion) IsExactMatch ¶
type Filter ¶
type Filter struct {
Spec string
MatchAll bool
Offset int
Limit int
Criteria []Criterion
Sort []string
Fields []string
Options map[string]interface{}
Paginate bool
IdentityField string
Normalizer NormalizerFunc `json:"-" bson:"-" pivot:"-"`
Conjunction ConjunctionType
}
func MakeFilter ¶
func (*Filter) AddCriteria ¶
func (*Filter) ApplyOptions ¶
func (*Filter) CriteriaFields ¶
func (*Filter) GetFirstValue ¶
func (*Filter) GetIdentityValue ¶
func (*Filter) IsMatchAll ¶
func (*Filter) NewFromMap ¶
func (*Filter) WithFields ¶
type Generator ¶
type Generator struct {
IGenerator
// contains filtered or unexported fields
}
type IGenerator ¶
type IGenerator interface {
Initialize(string) error
Finalize(*Filter) error
Push([]byte)
Set([]byte)
Payload() []byte
WithCriterion(Criterion) error
OrCriterion(Criterion) error
WithField(string) error
GroupByField(string) error
AggregateByField(Aggregation, string) error
SetOption(string, interface{}) error
GetValues() []interface{}
Reset()
}
type NormalizerFunc ¶
Click to show internal directories.
Click to hide internal directories.