Skip to content

Commit aa762c0

Browse files
committed
Changes from PR feedback
1 parent a6d60a5 commit aa762c0

File tree

5 files changed

+36
-36
lines changed

5 files changed

+36
-36
lines changed

lib/graphiti/errors.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -840,7 +840,7 @@ def initialize(resource, filter_names, required)
840840

841841
def message
842842
<<-MSG.gsub(/\s+/, " ").strip
843-
#{@required_label} of the following filters must be provided on resource #{@resource.class}:
843+
#{@required_label} of the following filters must be provided on resource #{@resource.type}:
844844
#{@filter_names.join(", ")}
845845
MSG
846846
end

lib/graphiti/resource/dsl.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ def filter(name, *args, &blk)
4646

4747
def filter_group(filter_names, *args)
4848
opts = args.extract_options!
49+
50+
Scoping::FilterGroupValidator.raise_unless_filter_group_requirement_valid!(self, opts[:required])
51+
4952
config[:grouped_filters] = {
5053
names: filter_names,
5154
required: opts[:required]

lib/graphiti/scoping/filter_group_validator.rb

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
module Graphiti
22
class Scoping::FilterGroupValidator
3-
VALID_FILTER_GROUP_REQUIRED_VALUES = %i[all any]
3+
VALID_REQUIRED_VALUES = %i[all any]
4+
5+
def self.raise_unless_filter_group_requirement_valid!(resource, requirement)
6+
unless VALID_REQUIRED_VALUES.include?(requirement)
7+
raise Errors::FilterGroupInvalidRequirement.new(
8+
resource,
9+
VALID_REQUIRED_VALUES
10+
)
11+
end
12+
13+
true
14+
end
415

516
def initialize(resource, query_hash)
617
@resource = resource
@@ -15,11 +26,6 @@ def raise_unless_filter_group_requirements_met!
1526
raise_unless_all_requirements_met!
1627
when :any
1728
raise_unless_any_requirements_met!
18-
else
19-
raise Errors::FilterGroupInvalidRequirement.new(
20-
resource,
21-
VALID_FILTER_GROUP_REQUIRED_VALUES
22-
)
2329
end
2430

2531
true
@@ -53,9 +59,6 @@ def raise_unless_any_requirements_met!
5359
end
5460
end
5561

56-
def filter_group_requirement_valid?
57-
VALID_FILTER_GROUP_REQUIRED_VALUES.include?(filter_group_requirement)
58-
end
5962

6063
def filter_group_names
6164
grouped_filters.fetch(:names, [])

spec/filter_group_validator_spec.rb

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,11 @@
55
let(:query_hash) { {} }
66
let(:validator) { described_class.new(resource, query_hash) }
77

8-
subject { validator.raise_unless_filter_group_requirements_met! }
9-
10-
describe "#raise_unless_filter_group_requirements_met!" do
11-
before do
12-
allow(resource).to receive(:grouped_filters).and_return(grouped_filters)
13-
end
8+
describe ".raise_unless_filter_group_requirement_valid!" do
9+
subject { described_class.raise_unless_filter_group_requirement_valid!(resource, required) }
1410

1511
context "when required invalid" do
16-
let(:query_hash) do
17-
{
18-
filter: {
19-
first_name: {},
20-
last_name: {}
21-
}
22-
}
23-
end
24-
25-
let(:grouped_filters) do
26-
{
27-
names: [:first_name, :last_name],
28-
required: :foo
29-
}
30-
end
12+
let(:required) { :invalid }
3113

3214
it "raises an error" do
3315
expect {
@@ -36,6 +18,22 @@
3618
end
3719
end
3820

21+
context "when required valid" do
22+
let(:required) { :all }
23+
24+
it "works" do
25+
expect(subject).to be true
26+
end
27+
end
28+
end
29+
30+
describe "#raise_unless_filter_group_requirements_met!" do
31+
subject { validator.raise_unless_filter_group_requirements_met! }
32+
33+
before do
34+
allow(resource).to receive(:grouped_filters).and_return(grouped_filters)
35+
end
36+
3937
context "when all are required" do
4038
let(:grouped_filters) do
4139
{

spec/filtering_spec.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1786,13 +1786,9 @@ def after_filtering(scope)
17861786

17871787
context "with filter group" do
17881788
context "when required invalid" do
1789-
before do
1790-
resource.filter_group [:first_name, :last_name], required: :foo
1791-
end
1792-
17931789
it "raises an error" do
17941790
expect {
1795-
records
1791+
resource.filter_group [:first_name, :last_name], required: :foo
17961792
}.to raise_error(/The filter group required: value on resource .+ must be one of the following:/)
17971793
end
17981794
end

0 commit comments

Comments
 (0)