Documentation
¶
Index ¶
Constants ¶
View Source
const ( FilterOpEquals FilterOp = iota FilterOpNotEquals FilterOpLessThan FilterOpLessThanEqual FilterOpGreaterThan FilterOpGreaterThanEqual FilterOpLike FilterOpNotLike FilterOpILike FilterOpNotILike FilterOpRegexp FilterOpNotRegexp FilterOpIRegexp FilterOpNotIRegexp FilterOpSymEquals = "=" FilterOpSymNotEquals = "!=" FilterOpSymLessThan = "<" FilterOpSymGreaterThan = ">" FilterOpSymLessThanEqual = "<=" FilterOpSymLessThanEqual2 = "=<" FilterOpSymGreaterThanEqual = ">=" FilterOpSymGreaterThanEqual2 = "=>" FilterOpSymLike = "=~" FilterOpSymNotLike = "!=~" FilterOpSymILike = "=~~" FilterOpSymNotILike = "!=~~" FilterOpSymRegexp = ":" FilterOpSymNotRegexp = "!:" FilterOpSymIRegexp = ":~" FilterOpSymNotIRegexp = "!:~" )
Variables ¶
View Source
var ( FilterOpSymToFilterOp = map[string]FilterOp{ FilterOpSymEquals: FilterOpEquals, FilterOpSymNotEquals: FilterOpNotEquals, FilterOpSymLessThan: FilterOpLessThan, FilterOpSymGreaterThan: FilterOpGreaterThan, FilterOpSymLessThanEqual: FilterOpLessThanEqual, FilterOpSymLessThanEqual2: FilterOpLessThanEqual, FilterOpSymGreaterThanEqual: FilterOpGreaterThanEqual, FilterOpSymGreaterThanEqual2: FilterOpGreaterThanEqual, FilterOpSymLike: FilterOpLike, FilterOpSymNotLike: FilterOpNotLike, FilterOpSymILike: FilterOpILike, FilterOpSymNotILike: FilterOpNotILike, FilterOpSymRegexp: FilterOpRegexp, FilterOpSymNotRegexp: FilterOpNotRegexp, FilterOpSymIRegexp: FilterOpIRegexp, FilterOpSymNotIRegexp: FilterOpNotIRegexp, } FilterOpToFilterOpSym = map[FilterOp]string{ FilterOpEquals: FilterOpSymEquals, FilterOpNotEquals: FilterOpSymNotEquals, FilterOpLessThan: FilterOpSymLessThan, FilterOpGreaterThan: FilterOpSymGreaterThan, FilterOpLessThanEqual: FilterOpSymLessThanEqual, FilterOpGreaterThanEqual: FilterOpSymGreaterThanEqual, FilterOpLike: FilterOpSymLike, FilterOpNotLike: FilterOpSymNotLike, FilterOpILike: FilterOpSymILike, FilterOpNotILike: FilterOpSymNotILike, FilterOpRegexp: FilterOpSymRegexp, FilterOpNotRegexp: FilterOpSymNotRegexp, FilterOpIRegexp: FilterOpSymIRegexp, FilterOpNotIRegexp: FilterOpSymNotIRegexp, } )
View Source
var (
ErrCouldNotParse = errors.New("could not parse")
)
Handles parsing query requests with complex matching and precedence
View Source
var ( FilterLogicSymToFilterLogic = map[string]FilterLogic{ FilterLogicSymAnd: FilterLogicAnd, FilterLogicSymOr: FilterLogicOr, } )
Functions ¶
This section is empty.
Types ¶
type Filter ¶
type Filter []FilterTerm
type FilterField ¶ added in v0.1.2
type FilterField interface {
Name() string
Type() FilterType
}
type FilterFieldCustom ¶ added in v0.1.2
type FilterFieldCustom struct {
FieldName string
FilterType FilterType
}
func (FilterFieldCustom) Name ¶ added in v0.1.2
func (ffc FilterFieldCustom) Name() string
func (FilterFieldCustom) Type ¶ added in v0.1.2
func (ffc FilterFieldCustom) Type() FilterType
type FilterFieldTypes ¶
type FilterFieldTypes map[Field]FilterField
func (FilterFieldTypes) FindFilterType ¶
func (fft FilterFieldTypes) FindFilterType(search string) (string, FilterType)
type FilterLogic ¶
type FilterLogic int
const ( FilterLogicStart FilterLogic = iota FilterLogicAnd FilterLogicOr FilterLogicSymAnd = "&" FilterLogicSymOr = "|" )
func (FilterLogic) MarshalJSON ¶
func (logic FilterLogic) MarshalJSON() ([]byte, error)
func (FilterLogic) String ¶
func (logic FilterLogic) String() string
type FilterTerm ¶
type FilterTerm struct {
Logic FilterLogic `json:"logic"`
Op FilterOp `json:"op"`
Field Field `json:"field"`
Value string `json:"value"`
SubFilter Filter `json:"sub_filter,omitempty"`
}
type FilterType ¶
type FilterType int
const ( FilterTypeNotFound FilterType = iota FilterTypeSimple FilterTypeString FilterTypeNumeric FilterTypeTime FilterTypeBool )
func (FilterType) Name ¶ added in v0.1.2
func (ft FilterType) Name() string
func (FilterType) Type ¶ added in v0.1.2
func (ft FilterType) Type() FilterType
type QueryParameters ¶
type QueryParameters struct {
Filter Filter `json:"filter"`
Sort Sort `json:"sort"`
Options Options `json:"options"`
Limit int `json:"limit"`
Offset int `json:"offset"`
}
func ParseQuery ¶
func ParseQuery(q string) (*QueryParameters, error)
ParseQuery converts a string into query parameters This loosely follows standard HTTP URL encoding
func ParseRawQuery ¶
func ParseRawQuery(rq string) (*QueryParameters, error)
func (*QueryParameters) PrettyString ¶
func (qp *QueryParameters) PrettyString() string
func (*QueryParameters) Reset ¶ added in v0.2.2
func (qp *QueryParameters) Reset()
func (*QueryParameters) String ¶
func (qp *QueryParameters) String() string
type SortFields ¶
type SortFields []string
Click to show internal directories.
Click to hide internal directories.