Skip to content

Commit f181f59

Browse files
committed
Co-erce non-present values like false to string
1 parent dc96280 commit f181f59

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

lib/jsonapi/resource.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,13 @@ def is_filter_relationship?(filter)
895895

896896
def verify_filter(filter, raw, context = nil)
897897
filter_values = []
898+
if raw == true
899+
raw = "true"
900+
elsif raw == false
901+
raw = "false"
902+
else
903+
nil # no-op
904+
end
898905
if raw.present?
899906
begin
900907
filter_values += raw.is_a?(String) ? CSV.parse_line(raw) : [raw]

test/unit/resource/resource_test.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,15 @@ def test_updatable_fields_does_not_include_id
321321
assert(!FelineResource.updatable_fields.include?(:id))
322322
end
323323

324+
def test_verify_filter
325+
resource_klass = PersonResource
326+
context = nil
327+
assert_equal([:name, ["true"]], resource_klass.verify_filter(:name, true, context))
328+
assert_equal([:name, ["false"]], resource_klass.verify_filter(:name, false, context))
329+
assert_equal([:name, ["true"]], resource_klass.verify_filter(:name, "true", context))
330+
assert_equal([:name, ["false"]], resource_klass.verify_filter(:name, "false", context))
331+
end
332+
324333
def test_filter_on_to_many_relationship_id
325334
posts = PostResource.find(:comments => 3)
326335
assert_equal([2], posts.map(&:id))

0 commit comments

Comments
 (0)