Skip to content

Commit 16cc581

Browse files
chiliburgerrichmolj
authored andcommitted
Added filter_group bypass for resource find method.
When adding the filter_group dsl it did not respect the bypass_required_filters flag. This PR changes the filter_group to respect the flag.
1 parent 5ce0f87 commit 16cc581

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

lib/graphiti/scoping/filter.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ class Scoping::Filter < Scoping::Base
33
include Scoping::Filterable
44

55
def apply
6-
Graphiti::Scoping::FilterGroupValidator.new(
7-
resource,
8-
query_hash
9-
).raise_unless_filter_group_requirements_met!
6+
unless @opts[:bypass_required_filters]
7+
Graphiti::Scoping::FilterGroupValidator.new(
8+
resource,
9+
query_hash
10+
).raise_unless_filter_group_requirements_met!
11+
end
1012

1113
if missing_required_filters.any? && !@opts[:bypass_required_filters]
1214
raise Errors::RequiredFilter.new(resource, missing_required_filters)

spec/filtering_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1860,5 +1860,19 @@ def after_filtering(scope)
18601860
end
18611861
end
18621862
end
1863+
1864+
context 'when bypass required filters true' do
1865+
before do
1866+
resource.filter_group [:first_name, :last_name], required: :all
1867+
resource.filter :id, :integer
1868+
end
1869+
1870+
it "does not require the filter" do
1871+
expect {
1872+
proxy = resource.find(filter: {id: employee2.id})
1873+
expect(proxy.data.id).to eq(employee2.id)
1874+
}.to_not raise_error
1875+
end
1876+
end
18631877
end
18641878
end

0 commit comments

Comments
 (0)