forked from TrueCloudLab/frostfs-api-go
[#164] sdk/object: Define filters to search root objects
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
9799e5d48c
commit
09e6093e64
3 changed files with 60 additions and 0 deletions
|
@ -98,3 +98,15 @@ func (f SearchFilters) ToV2() []*v2object.SearchFilter {
|
|||
|
||||
return result
|
||||
}
|
||||
|
||||
func (f *SearchFilters) addRootFilter(val string) {
|
||||
f.AddFilter(KeyRoot, val, MatchStringEqual)
|
||||
}
|
||||
|
||||
func (f *SearchFilters) AddRootFilter() {
|
||||
f.addRootFilter(ValRoot)
|
||||
}
|
||||
|
||||
func (f *SearchFilters) AddNonRootFilter() {
|
||||
f.addRootFilter(ValNonRoot)
|
||||
}
|
||||
|
|
|
@ -51,3 +51,31 @@ func TestFilter(t *testing.T) {
|
|||
newFilters := object.NewSearchFiltersFromV2(v2)
|
||||
require.Equal(t, filters, newFilters)
|
||||
}
|
||||
|
||||
func TestSearchFilters_AddRootFilter(t *testing.T) {
|
||||
fs := new(object.SearchFilters)
|
||||
|
||||
fs.AddRootFilter()
|
||||
|
||||
require.Len(t, *fs, 1)
|
||||
|
||||
f := (*fs)[0]
|
||||
|
||||
require.Equal(t, object.MatchStringEqual, f.Operation())
|
||||
require.Equal(t, object.KeyRoot, f.Header())
|
||||
require.Equal(t, object.ValRoot, f.Value())
|
||||
}
|
||||
|
||||
func TestSearchFilters_AddNonRootFilter(t *testing.T) {
|
||||
fs := new(object.SearchFilters)
|
||||
|
||||
fs.AddNonRootFilter()
|
||||
|
||||
require.Len(t, *fs, 1)
|
||||
|
||||
f := (*fs)[0]
|
||||
|
||||
require.Equal(t, object.MatchStringEqual, f.Operation())
|
||||
require.Equal(t, object.KeyRoot, f.Header())
|
||||
require.Equal(t, object.ValNonRoot, f.Value())
|
||||
}
|
||||
|
|
20
pkg/object/wellknown_filters.go
Normal file
20
pkg/object/wellknown_filters.go
Normal file
|
@ -0,0 +1,20 @@
|
|||
package object
|
||||
|
||||
const (
|
||||
valFalse = "false"
|
||||
valTrue = "true"
|
||||
)
|
||||
|
||||
// ReservedFilterPrefix is a reserved prefix for system search filter keys.
|
||||
const ReservedFilterPrefix = "$Object:"
|
||||
|
||||
const (
|
||||
// KeyRoot is a reserved search filter key to source objects.
|
||||
KeyRoot = ReservedFilterPrefix + "ROOT"
|
||||
|
||||
// ValRoot is a value of root object filter.
|
||||
ValRoot = valTrue
|
||||
|
||||
// ValNonRoot is a value of non-root object filter.
|
||||
ValNonRoot = valFalse
|
||||
)
|
Loading…
Reference in a new issue