mirror of
https://github.com/rancher/steve.git
synced 2025-07-01 09:12:12 +00:00
* Copy pkg/cache/sql from lasso to pkg/sqlcache * Rename import from github.com/rancher/lasso/pkg/cache/sql to github.com/rancher/steve/pkg/sqlcache * Fix filter.Match -> filter.Matches * go mod tidy * Fix lint errors * Remove lasso SQL cache mentions * Fix more CI lint errors * fix goimports Signed-off-by: Silvio Moioli <silvio@moioli.net> * fix tests (Match -> Matches) Signed-off-by: Silvio Moioli <silvio@moioli.net> * Fix Sort order --------- Signed-off-by: Silvio Moioli <silvio@moioli.net> Co-authored-by: Silvio Moioli <silvio@moioli.net>
69 lines
2.0 KiB
Go
69 lines
2.0 KiB
Go
package informer
|
|
|
|
type Op string
|
|
|
|
const (
|
|
Eq Op = "="
|
|
NotEq Op = "!="
|
|
Exists Op = "Exists"
|
|
NotExists Op = "NotExists"
|
|
In Op = "In"
|
|
NotIn Op = "NotIn"
|
|
Lt Op = "Lt"
|
|
Gt Op = "Gt"
|
|
)
|
|
|
|
// SortOrder represents whether the list should be ascending or descending.
|
|
type SortOrder int
|
|
|
|
const (
|
|
// ASC stands for ascending order.
|
|
ASC SortOrder = iota
|
|
// DESC stands for descending (reverse) order.
|
|
DESC
|
|
)
|
|
|
|
// ListOptions represents the query parameters that may be included in a list request.
|
|
type ListOptions struct {
|
|
ChunkSize int
|
|
Resume string
|
|
Filters []OrFilter
|
|
Sort Sort
|
|
Pagination Pagination
|
|
}
|
|
|
|
// Filter represents a field to filter by.
|
|
// A subfield in an object is represented in a request query using . notation, e.g. 'metadata.name'.
|
|
// The subfield is internally represented as a slice, e.g. [metadata, name].
|
|
// Complex subfields need to be expressed with square brackets, as in `metadata.labels[zombo.com/moose]`,
|
|
// but are mapped to the string slice ["metadata", "labels", "zombo.com/moose"]
|
|
//
|
|
// If more than one value is given for the `Match` field, we do an "IN (<values>)" test
|
|
type Filter struct {
|
|
Field []string
|
|
Matches []string
|
|
Op Op
|
|
Partial bool
|
|
}
|
|
|
|
// OrFilter represents a set of possible fields to filter by, where an item may match any filter in the set to be included in the result.
|
|
type OrFilter struct {
|
|
Filters []Filter
|
|
}
|
|
|
|
// Sort represents the criteria to sort on.
|
|
// The subfield to sort by is represented in a request query using . notation, e.g. 'metadata.name'.
|
|
// The subfield is internally represented as a slice, e.g. [metadata, name].
|
|
// The order is represented by prefixing the sort key by '-', e.g. sort=-metadata.name.
|
|
// e.g. To sort internal clusters first followed by clusters in alpha order: sort=-spec.internal,spec.displayName
|
|
type Sort struct {
|
|
Fields [][]string
|
|
Orders []SortOrder
|
|
}
|
|
|
|
// Pagination represents how to return paginated results.
|
|
type Pagination struct {
|
|
PageSize int
|
|
Page int
|
|
}
|