Documentation ¶
Index ¶
- Constants
- Variables
- func NewInputOutputType[T any, IOT InputOutputInterface[T]](data T, i IOT) (IOT, error)
- type Error
- type ErrorCode
- type FilterCondition
- type FilterConditions
- type FilterLogic
- type FilterOperator
- type Filters
- type InputOutputInterface
- type InputOutputType
- type InputTransformerInterface
- type OutputTransformerInterface
- type ValidationError
- type ValidationFunc
Constants ¶
View Source
const ( FilterLogicAnd FilterLogic = "and" FilterLogicOr FilterLogic = "or" FilterOperatorEqual FilterOperator = "eq" FilterOperatorNotEqual FilterOperator = "neq" FilterOperatorGreaterThan FilterOperator = "gt" FilterOperatorGreaterThanOrEqual FilterOperator = "gte" FilterOperatorGreaterThanOrEqualOrNil FilterOperator = "gten" FilterOperatorLowerThan FilterOperator = "lt" FilterOperatorLowerThanOrEqual FilterOperator = "lte" FilterOperatorLowerThanOrEqualOrNil FilterOperator = "lten" FilterOperatorBegins FilterOperator = "begins" FilterOperatorContains FilterOperator = "contains" FilterOperatorNotContains FilterOperator = "not-contains" FilterOperatorEnds FilterOperator = "ends" FilterOperatorIsNil FilterOperator = "nil" FilterOperatorIsNotNil FilterOperator = "not-null" FilterOperatorIsEmpty FilterOperator = "empty" FilterOperatorIsNotEmpty FilterOperator = "not-empty" FilterOperatorIn FilterOperator = "in" FilterOperatorNotIn FilterOperator = "not-in" ValidationErrorEmpty = "empty value" ValidationErrorInvalidOperator = "invalid operator" )
Variables ¶
View Source
var ErrorCodes = map[ErrorCode]string{ Unknown: "unknown error", UnreadableInputData: "unreadable input data", InvalidInputDataStructure: "invalid input data structure", InvalidFiltersStructure: "invalid filters structure", NonWriteableOutputData: "can't write output data", }
Functions ¶
func NewInputOutputType ¶
func NewInputOutputType[T any, IOT InputOutputInterface[T]](data T, i IOT) (IOT, error)
Types ¶
type FilterCondition ¶
type FilterCondition struct { Field string Operator FilterOperator Value interface{} }
func (*FilterCondition) IsNegative ¶
func (c *FilterCondition) IsNegative() bool
func (*FilterCondition) UnmarshalJSON ¶ added in v0.4.0
func (c *FilterCondition) UnmarshalJSON(data []byte) error
type FilterConditions ¶
type FilterConditions struct { Conditions []FilterCondition Filters []Filters }
func (*FilterConditions) IsEmpty ¶ added in v0.3.0
func (fc *FilterConditions) IsEmpty() bool
func (*FilterConditions) UnmarshalJSON ¶
func (fc *FilterConditions) UnmarshalJSON(data []byte) error
type FilterLogic ¶
type FilterLogic string
type FilterOperator ¶
type FilterOperator string
type Filters ¶
type Filters struct { Logic FilterLogic Conditions FilterConditions }
func (*Filters) Validate ¶ added in v0.3.0
func (f *Filters) Validate(validationFunc *ValidationFunc) []ValidationError
type InputOutputInterface ¶
type InputOutputType ¶
type InputOutputType[T any] struct { // contains filtered or unexported fields }
func (*InputOutputType[T]) GetData ¶
func (i *InputOutputType[T]) GetData() (T, error)
func (*InputOutputType[T]) SetData ¶
func (i *InputOutputType[T]) SetData(data T) error
type InputTransformerInterface ¶
type InputTransformerInterface[T any, IOT InputOutputInterface[T]] interface { Transform(input IOT) (Filters, *Error) }
type OutputTransformerInterface ¶
type OutputTransformerInterface[T any, IOT InputOutputInterface[T]] interface { Transform(input Filters) (IOT, *Error) }
type ValidationError ¶ added in v0.3.0
type ValidationFunc ¶ added in v0.3.0
type ValidationFunc func(filterCondition FilterCondition, path string, validationErrors *[]ValidationError)
Click to show internal directories.
Click to hide internal directories.