Skip to content

Commit

Permalink
Merge pull request #49 from DripEmail/repair_json_parsing
Browse files Browse the repository at this point in the history
Repair json parsing issues.
  • Loading branch information
will-in-wi committed Jun 6, 2018
2 parents a20094a + 0fc8f12 commit 56e1269
Show file tree
Hide file tree
Showing 17 changed files with 118 additions and 90 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

- Your contribution here!

### Fixed

- [#48](https://github.com/DripEmail/drip-ruby/issues/48): Repair json parsing to work correctly

## [3.1.0] - 2018-06-05

[3.1.0]: https://github.com/DripEmail/drip-ruby/compare/v3.0.0...v3.1.0
Expand Down
4 changes: 3 additions & 1 deletion lib/drip/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,9 @@ def make_request(verb_klass, uri, options, step = 0)

def build_response(&block)
response = yield
Drip::Response.new(response.code.to_i, response.body)
Drip::Response.new(response.code.to_i, response.body || response.body == "" ? JSON.parse(response.body) : nil)
rescue JSON::ParserError
Drip::Response.new(response.code.to_i, nil)
end

def connection_options(uri_scheme)
Expand Down
8 changes: 4 additions & 4 deletions test/drip/client/accounts_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,30 @@ def setup
context "#accounts" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"

stub_request(:get, "https://api.getdrip.com/v2/accounts").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.accounts
end
end

context "#account" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"
@id = 9999999

stub_request(:get, "https://api.getdrip.com/v2/accounts/#{@id}").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.account(@id)
end
end
Expand Down
8 changes: 4 additions & 4 deletions test/drip/client/broadcasts_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,30 @@ def setup
context "#broadcasts" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"

stub_request(:get, "https://api.getdrip.com/v2/12345/broadcasts").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the correct request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.broadcasts
end
end

context "#broadcast" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"
@id = 99999

stub_request(:get, "https://api.getdrip.com/v2/12345/broadcasts/#{@id}").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the correct request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.broadcast(@id)
end
end
Expand Down
4 changes: 2 additions & 2 deletions test/drip/client/campaign_subscriptions_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ def setup
context "#campaign_subscriptions" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"
@subscriber_id = "abc123"

stub_request(:get, "https://api.getdrip.com/v2/12345/subscribers/#{@subscriber_id}/campaign_subscriptions").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.campaign_subscriptions(@subscriber_id)
end
end
Expand Down
12 changes: 6 additions & 6 deletions test/drip/client/campaigns_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,30 @@ def setup
context "#campaigns" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"

stub_request(:get, "https://api.getdrip.com/v2/12345/campaigns").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.campaigns
end
end

context "#campaign" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"
@id = 9999999

stub_request(:get, "https://api.getdrip.com/v2/12345/campaigns/#{@id}").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.campaign(@id)
end
end
Expand Down Expand Up @@ -71,15 +71,15 @@ def setup
context "#campaign_subscribers" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"
@id = 9999999

stub_request(:get, "https://api.getdrip.com/v2/12345/campaigns/#{@id}/subscribers").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.campaign_subscribers(@id)
end
end
Expand Down
8 changes: 4 additions & 4 deletions test/drip/client/conversions_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,30 @@ def setup
context "#conversions" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"

stub_request(:get, "https://api.getdrip.com/v2/12345/goals").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.conversions
end
end

context "#conversion" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"
@id = 9999999

stub_request(:get, "https://api.getdrip.com/v2/12345/goals/#{@id}").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.conversion(@id)
end
end
Expand Down
4 changes: 2 additions & 2 deletions test/drip/client/custom_fields_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ def setup
context "#custom_fields" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"

stub_request(:get, "https://api.getdrip.com/v2/12345/custom_field_identifiers").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.custom_fields
end
end
Expand Down
16 changes: 8 additions & 8 deletions test/drip/client/events_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ def setup
}.to_json

@response_status = 201
@response_body = "stub"
@response_body = "{}"

stub_request(:post, "https://api.getdrip.com/v2/12345/events").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.track_event(@email, @action, @properties)
end
end
Expand All @@ -50,14 +50,14 @@ def setup
}.to_json

@response_status = 201
@response_body = "stub"
@response_body = "{}"

stub_request(:post, "https://api.getdrip.com/v2/12345/events").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.track_event(@email, @action, @properties, @options)
end
end
Expand All @@ -78,29 +78,29 @@ def setup

@payload = { "batches" => [{ "events" => @events }] }.to_json
@response_status = 201
@response_body = "stub"
@response_body = "{}"

stub_request(:post, "https://api.getdrip.com/v2/12345/events/batches").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.track_events(@events)
end
end

context "#event_actions" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"

stub_request(:get, "https://api.getdrip.com/v2/12345/event_actions").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.event_actions
end
end
Expand Down
8 changes: 4 additions & 4 deletions test/drip/client/forms_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,30 @@ def setup
context "#forms" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"

stub_request(:get, "https://api.getdrip.com/v2/12345/forms").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.forms
end
end

context "#form" do
setup do
@response_status = 200
@response_body = "stub"
@response_body = "{}"
@id = 9999999

stub_request(:get, "https://api.getdrip.com/v2/12345/forms/#{@id}").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the right request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.form(@id)
end
end
Expand Down
12 changes: 6 additions & 6 deletions test/drip/client/orders_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@ def setup
}
@payload = { "orders" => [@options] }.to_json
@response_status = 202
@response_body = "stub"
@response_body = "{}"

stub_request(:post, "https://api.getdrip.com/v2/12345/orders").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the correct request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.create_or_update_order(@email, @options)
end
end
Expand Down Expand Up @@ -71,14 +71,14 @@ def setup

@payload = { "batches" => [{ "orders" => @orders }] }.to_json
@response_status = 202
@response_body = "stub"
@response_body = "{}"

stub_request(:post, "https://api.getdrip.com/v2/12345/orders/batches").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the correct request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.create_or_update_orders(@orders)
end
end
Expand All @@ -96,14 +96,14 @@ def setup

@payload = { "refunds" => [@options] }.to_json
@response_status = 202
@response_body = "stub"
@response_body = "{}"

stub_request(:post, "https://api.getdrip.com/v2/12345/refunds").
to_return(status: @response_status, body: @response_body, headers: {})
end

should "send the correct request" do
expected = Drip::Response.new(@response_status, @response_body)
expected = Drip::Response.new(@response_status, JSON.parse(@response_body))
assert_equal expected, @client.create_or_update_refund(@options)
end
end
Expand Down
Loading

0 comments on commit 56e1269

Please sign in to comment.