adjust 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 394b43447458b304090b06fbc93ebf860f94949f
4
- data.tar.gz: 3176c978c5b815e5e92db9be77b3b2717e733e72
3
+ metadata.gz: b6006d97a274628f7f36570ac0a1c7471a7810d1
4
+ data.tar.gz: b0cc4a2260d946f0eb12839ae3979f6c7a5d6058
5
5
  SHA512:
6
- metadata.gz: d3a95181c80beb4fe83913ee6b2adb472b1733eecefe8b69a76d2b234dbb072f94a00319e55191613d8334a1483cc669d1b8bc4e164a1f32ce2684b044f543ec
7
- data.tar.gz: 4230cf55d66d62c0066cb7393a2f9fa8f5d4e8d6a7416041c24f5bae70cdb6c5d0b54a3758f3700ac3b3688a43a5167fb40aeb90040bf2ac4b25eacd976207ed
6
+ metadata.gz: 4d9ac213976e887ae202856a9857f53310640cec97c82a55783113d068acebc9507a8d46a8b1b99da3dce6d9aaee93112c82dd4ff363affb0edc848012b8573f
7
+ data.tar.gz: d83860afe9461d421db46380110cc76abc0daf50d13207564959d6665aae21b76671540073990505844e308fdb0e89fc07eaba9d401e10d6d2f0926ab62802fe
@@ -1,10 +1,11 @@
1
+ require 'faraday'
1
2
  require 'adjust/version'
2
- require 'adjust/transport/faraday'
3
3
 
4
4
  module Adjust
5
5
  autoload :Core, 'adjust/core'
6
6
  autoload :Clients, 'adjust/clients'
7
7
  autoload :Representers, 'adjust/representers'
8
+ autoload :Transport, 'adjust/transport'
8
9
 
9
10
  class << self
10
11
  include Core::Configurable
@@ -0,0 +1,2 @@
1
+ require 'adjust/transport/fail_hard'
2
+ require 'adjust/transport/faraday'
@@ -0,0 +1,23 @@
1
+ module Adjust
2
+ module Transport
3
+ class Error < StandardError; end
4
+
5
+ class FailHard < ::Faraday::Response::Middleware
6
+ SUCCESS_STATUSES = 200...300
7
+
8
+ def on_complete(env)
9
+ fail Error, error_from_json(env[:body]) if failed?(env)
10
+ end
11
+
12
+ def failed?(env)
13
+ !SUCCESS_STATUSES.include?(env[:status])
14
+ end
15
+
16
+ def error_from_json(body)
17
+ MultiJson.load(body)['error']
18
+ end
19
+
20
+ Faraday::Response.register_middleware fail_hard: FailHard
21
+ end
22
+ end
23
+ end
@@ -1,4 +1,3 @@
1
- require 'roar/http_verbs'
2
1
  require 'roar/transport/faraday'
3
2
 
4
3
  module Adjust
@@ -9,7 +8,7 @@ module Adjust
9
8
  def build_connection(uri, _)
10
9
  ::Faraday.new(url: uri) do |connection|
11
10
  connection.request :url_encoded
12
- connection.use ::Faraday::Response::RaiseError
11
+ connection.response :fail_hard
13
12
  connection.adapter ::Faraday.default_adapter
14
13
  end
15
14
  end
@@ -1,3 +1,3 @@
1
1
  module Adjust
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -0,0 +1,35 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://s2s.adjust.com/event
6
+ body:
7
+ encoding: UTF-8
8
+ string: app_token=<ADJUST_APP_TOKEN>&created_at=2015-05-13T15%3A34%3A02Z&environment=sandbox&event_token=tawmb9&idfa=D2CADB5F-410F-4963-AC0C-2A78534BDF1E&s2s=1
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 500
21
+ message: Internal Server Error
22
+ headers:
23
+ Content-Type:
24
+ - text/plain; charset=utf-8
25
+ Date:
26
+ - Wed, 13 May 2015 15:34:02 GMT
27
+ Content-Length:
28
+ - '138'
29
+ body:
30
+ encoding: UTF-8
31
+ string: |
32
+ {"error":"Event failed (Device not found, contact support@adjust.com) (app_token: <ADJUST_APP_TOKEN>, adid: dc4920c26bcc478fbdd2e5bfd0dbe551)"}
33
+ http_version:
34
+ recorded_at: Wed, 13 May 2015 15:34:02 GMT
35
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,35 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://s2s.adjust.com/revenue
6
+ body:
7
+ encoding: UTF-8
8
+ string: app_token=<ADJUST_APP_TOKEN>&created_at=2015-05-13T14%3A28%3A41Z&currency=CAD&environment=sandbox&event_token=fbv8to&idfa=D2CADB5F-410F-4963-AC0C-2A78534BDF1E&revenue=2.0&s2s=1
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 500
21
+ message: Internal Server Error
22
+ headers:
23
+ Content-Type:
24
+ - text/plain; charset=utf-8
25
+ Date:
26
+ - Wed, 13 May 2015 14:28:42 GMT
27
+ Content-Length:
28
+ - '138'
29
+ body:
30
+ encoding: UTF-8
31
+ string: |
32
+ {"error":"Event failed (Device not found, contact support@adjust.com) (app_token: <ADJUST_APP_TOKEN>, adid: dc4920c26bcc478fbdd2e5bfd0dbe551)"}
33
+ http_version:
34
+ recorded_at: Wed, 13 May 2015 14:28:41 GMT
35
+ recorded_with: VCR 2.9.3
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'Sending a revenue' do
4
- context 'with success', vcr: { cassette_name: :revenue_success } do
4
+ context 'with success', vcr: named(:revenue_success) do
5
5
  subject do
6
6
  Adjust.revenue \
7
7
  app: :test_app,
@@ -15,4 +15,20 @@ describe 'Sending a revenue' do
15
15
  expect(subject.track!).to be_success
16
16
  end
17
17
  end
18
+
19
+ context 'with unknown device', vcr: named(:revenue_unknown_device) do
20
+ subject do
21
+ Adjust.revenue \
22
+ app: :test_app,
23
+ event: :event2,
24
+ revenue: 2.0,
25
+ currency: 'CAD',
26
+ idfa: 'D2CADB5F-410F-4963-AC0C-2A78534BDF1E'
27
+ end
28
+
29
+ it 'raises an error' do
30
+ expect { subject.track! }.to raise_error \
31
+ Adjust::Transport::Error, /Device not found/
32
+ end
33
+ end
18
34
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'Sending an event' do
4
- context 'with success', vcr: { cassette_name: :event_success } do
4
+ context 'with success', vcr: named(:event_success) do
5
5
  subject do
6
6
  Adjust.event \
7
7
  app: :test_app,
@@ -13,4 +13,18 @@ describe 'Sending an event' do
13
13
  expect(subject.track!).to be_success
14
14
  end
15
15
  end
16
+
17
+ context 'with unknown device', vcr: named(:event_unknown_device) do
18
+ subject do
19
+ Adjust.event \
20
+ app: :test_app,
21
+ event: :event1,
22
+ idfa: 'D2CADB5F-410F-4963-AC0C-2A78534BDF1E'
23
+ end
24
+
25
+ it 'raises an error' do
26
+ expect { subject.track! }.to raise_error \
27
+ Adjust::Transport::Error, /Device not found/
28
+ end
29
+ end
16
30
  end
@@ -40,4 +40,8 @@ RSpec.configure do |config|
40
40
  config.after(:each) do
41
41
  Timecop.return
42
42
  end
43
+
44
+ def named(name)
45
+ { cassette_name: name }
46
+ end
43
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adjust
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hugo Bastien
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-07 00:00:00.000000000 Z
11
+ date: 2015-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -192,6 +192,8 @@ files:
192
192
  - lib/adjust/core/tokens.rb
193
193
  - lib/adjust/representers.rb
194
194
  - lib/adjust/representers/event_representer.rb
195
+ - lib/adjust/transport.rb
196
+ - lib/adjust/transport/fail_hard.rb
195
197
  - lib/adjust/transport/faraday.rb
196
198
  - lib/adjust/version.rb
197
199
  - spec/clients/event_spec.rb
@@ -199,7 +201,9 @@ files:
199
201
  - spec/core/configuration_spec.rb
200
202
  - spec/fixtures/config/adjust.yml
201
203
  - spec/fixtures/responses/event_success.yml
204
+ - spec/fixtures/responses/event_unknown_device.yml
202
205
  - spec/fixtures/responses/revenue_success.yml
206
+ - spec/fixtures/responses/revenue_unknown_device.yml
203
207
  - spec/integration/sending_a_revenue_spec.rb
204
208
  - spec/integration/sending_an_event_spec.rb
205
209
  - spec/spec_helper.rb
@@ -234,7 +238,9 @@ test_files:
234
238
  - spec/core/configuration_spec.rb
235
239
  - spec/fixtures/config/adjust.yml
236
240
  - spec/fixtures/responses/event_success.yml
241
+ - spec/fixtures/responses/event_unknown_device.yml
237
242
  - spec/fixtures/responses/revenue_success.yml
243
+ - spec/fixtures/responses/revenue_unknown_device.yml
238
244
  - spec/integration/sending_a_revenue_spec.rb
239
245
  - spec/integration/sending_an_event_spec.rb
240
246
  - spec/spec_helper.rb