diff --git a/core/subscription/service.go b/core/subscription/service.go index eafa12878..6276e3270 100644 --- a/core/subscription/service.go +++ b/core/subscription/service.go @@ -12,8 +12,8 @@ import ( mb2 "github.com/cheggaaa/mb/v3" "github.com/globalsign/mgo/bson" "github.com/gogo/protobuf/types" - "golang.org/x/exp/slices" "github.com/valyala/fastjson" + "golang.org/x/exp/slices" "github.com/anyproto/anytype-heart/core/domain" @@ -648,11 +648,11 @@ func (s *service) filtersFromSource(sources []string) (database.Filter, error) { } if len(typeUniqueKeys) > 0 { - nestedFiler, err := database.MakeFilter(&model.BlockContentDataviewFilter{ + nestedFiler, err := database.MakeFilter("", &model.BlockContentDataviewFilter{ RelationKey: database.NestedRelationKey(bundle.RelationKeyType, bundle.RelationKeyUniqueKey), Condition: model.BlockContentDataviewFilter_In, Value: pbtypes.StringList(typeUniqueKeys), - }, s.objectStore, "") + }, s.objectStore) if err != nil { return nil, fmt.Errorf("make nested filter: %w", err) } diff --git a/pkg/lib/database/filter.go b/pkg/lib/database/filter.go index 1322f2fb2..205ba87e8 100644 --- a/pkg/lib/database/filter.go +++ b/pkg/lib/database/filter.go @@ -27,21 +27,21 @@ func MakeFilters(protoFilters []*model.BlockContentDataviewFilter, store ObjectS spaceId := getSpaceIDFromFilters(protoFilters) // to avoid unnecessary nested filter if len(protoFilters) == 1 && len(protoFilters[0].NestedFilters) > 0 && protoFilters[0].Operator != model.BlockContentDataviewFilter_No { - return MakeFilter(protoFilters[0], store, spaceId) + return MakeFilter(spaceId, protoFilters[0], store) } - return MakeFilter(&model.BlockContentDataviewFilter{ + return MakeFilter(spaceId, &model.BlockContentDataviewFilter{ Operator: model.BlockContentDataviewFilter_And, NestedFilters: protoFilters, - }, store, spaceId) + }, store) } -func MakeFilter(protoFilter *model.BlockContentDataviewFilter, store ObjectStore, spaceId string) (Filter, error) { +func MakeFilter(spaceId string, protoFilter *model.BlockContentDataviewFilter, store ObjectStore) (Filter, error) { if protoFilter.Operator == model.BlockContentDataviewFilter_No { return makeFilter(spaceId, protoFilter, store) } filters := make([]Filter, 0, len(protoFilter.NestedFilters)) for _, nestedFilter := range protoFilter.NestedFilters { - filter, err := MakeFilter(nestedFilter, store, spaceId) + filter, err := MakeFilter(spaceId, nestedFilter, store) if err != nil { return nil, err } @@ -691,7 +691,7 @@ var _ WithNestedFilter = &FilterNestedIn{} func makeFilterNestedIn(spaceID string, rawFilter *model.BlockContentDataviewFilter, store ObjectStore, relationKey string, nestedRelationKey string) (Filter, error) { rawNestedFilter := proto.Clone(rawFilter).(*model.BlockContentDataviewFilter) rawNestedFilter.RelationKey = nestedRelationKey - nestedFilter, err := MakeFilter(rawNestedFilter, store, spaceID) + nestedFilter, err := MakeFilter(spaceID, rawNestedFilter, store) if err != nil { return nil, fmt.Errorf("make nested filter %s -> %s: %w", relationKey, nestedRelationKey, err) } diff --git a/pkg/lib/database/filter_test.go b/pkg/lib/database/filter_test.go index af74d0466..b2f44565a 100644 --- a/pkg/lib/database/filter_test.go +++ b/pkg/lib/database/filter_test.go @@ -454,11 +454,11 @@ func TestNestedFilters(t *testing.T) { }, }, nil) - f, err := MakeFilter(&model.BlockContentDataviewFilter{ + f, err := MakeFilter("spaceId", &model.BlockContentDataviewFilter{ RelationKey: "type.typeKey", Condition: model.BlockContentDataviewFilter_Equal, Value: pbtypes.String("note"), - }, store, "spaceId") + }, store) require.NoError(t, err) obj1 := &types.Struct{Fields: map[string]*types.Value{"type": pbtypes.String("id1")}}