From 4a90839f76aa07d5bda6891e7fc3b1019e7cc63c Mon Sep 17 00:00:00 2001 From: Tom Dooner Date: Thu, 15 Dec 2022 11:01:03 -0800 Subject: [PATCH] Fix query params not being used in Intercom::BaseCollectionProxy Arbitrary @query params could be passed in to filter resources, e.g. via the `#find_all` method. These params were not being forwarded through to the underlying HTTP client by BaseCollectionProxy in the same way that they are in ClientCollectionProxy. --- lib/intercom/base_collection_proxy.rb | 5 +---- spec/unit/intercom/base_collection_proxy_spec.rb | 5 +++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/intercom/base_collection_proxy.rb b/lib/intercom/base_collection_proxy.rb index ee622d7..8fb5945 100644 --- a/lib/intercom/base_collection_proxy.rb +++ b/lib/intercom/base_collection_proxy.rb @@ -68,10 +68,7 @@ def has_next_link?(response_hash) end def payload - payload = {} - payload[:per_page] = @params[:per_page] if @params[:per_page] - payload[:starting_after] = @params[:starting_after] if @params[:starting_after] - payload + @params.keep_if { |k, v| !v.nil? }.to_h end end end diff --git a/spec/unit/intercom/base_collection_proxy_spec.rb b/spec/unit/intercom/base_collection_proxy_spec.rb index 473c4e3..02efed9 100644 --- a/spec/unit/intercom/base_collection_proxy_spec.rb +++ b/spec/unit/intercom/base_collection_proxy_spec.rb @@ -44,4 +44,9 @@ contacts.each { |contact| emails_iter2 << contact.email } _(emails_iter1).must_equal emails_iter2 end + + it "supports query params" do + client.expects(:get).with("/conversations", {:intercom_user_id => 'abcdef0000'}).returns(test_conversation_list) + _(client.conversations.find_all(:intercom_user_id => 'abcdef0000').map(&:id)).must_equal %w[147] + end end