attune 1.0.11 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5867da9248b0bd888009ad61bf369ed4b66e5485
4
- data.tar.gz: 9bfa7c8ca1c9b04babbdf5d81ef0017630f3e180
3
+ metadata.gz: 3864ecede09a3148c23d49737275d5c49486b6b0
4
+ data.tar.gz: 42197d4441dec9a6ba768c83323888f9c475429e
5
5
  SHA512:
6
- metadata.gz: 59a091b696135af426afb2cf86afcabacc994f4d4742942853e260d5ab35d029e705a721fd7922f9d820dd2a3c9a6ea83a0d040e92c645153acb838b7fbafc9b
7
- data.tar.gz: 3720f7530e58745cbbf2eb059242019cd54ebcefaa60ec172f102ebd453100af74f24d11fa14c35e638714e98e98cc8579faf6f63338c587b708a4eda8b08f99
6
+ metadata.gz: ec73bb2719d24b224d44beae11f2bd66a3b78676e57ec311fa0419ac24de71d82ed0868db15e21d9b94b5c746b30a94a87a10b06f103a5e93d79ec16d7e4120a
7
+ data.tar.gz: 94e15e68ff09a9add6a480ccbc2a2b9e17fc4cedf30f5635a4f5d0cea59560529a6160c034b9934ad63007c0882110f95f3b7ddbfee71141443d32574f6621b5
data/.yardopts CHANGED
@@ -1,2 +1,4 @@
1
1
  --markup-provider=redcarpet
2
2
  --markup=markdown
3
+ -
4
+ blacklist.md
data/blacklist.md CHANGED
@@ -10,9 +10,10 @@ scope = Attune::Model::ScopeEntry.new
10
10
  scope.name = 'page'
11
11
  scope.value = 'sale'
12
12
  params.scope = [scope]
13
- params.active_from = '2012-06-04 19:00:00'
14
- params.active_to = '2012-06-06 19:00:00'
15
- client.entities.blacklist_save(params)
13
+ params.active_from = DateTime.now
14
+ params.active_to = DateTime.now + 7
15
+ response = client.entities.blacklist_save(params)
16
+ blacklist_id = response.id
16
17
  ```
17
18
 
18
19
  ## Retrieve a blacklist entry
@@ -26,7 +27,7 @@ blacklist = client.entities.blacklist_get(blacklist_id)
26
27
  ``` ruby
27
28
  params = Attune::Model::BlacklistParams.new
28
29
  params.disabled = true
29
- client.entities.blacklist_update(params)
30
+ client.entities.blacklist_update(blacklist_id, params)
30
31
  ```
31
32
 
32
33
  ## Delete a blacklist entry
@@ -36,6 +37,8 @@ client.entities.blacklist_delete(blacklist_id)
36
37
  ```
37
38
 
38
39
  ## Get all blacklists for your account
40
+
39
41
  ``` ruby
40
- all_blacklists = client.entities.blacklist_get_all(blacklist_id)
42
+ response = client.entities.blacklist_get_all()
43
+ all_blacklists = response.blacklists
41
44
  ```
data/lib/attune/client.rb CHANGED
@@ -100,10 +100,35 @@ module Attune
100
100
 
101
101
  def adapter
102
102
  raise DisabledException if disabled?
103
- Faraday.new(url: endpoint, builder: middleware, request: {timeout: timeout}) do |connection|
103
+ effective_middleware = middleware || default_middleware
104
+ Faraday.new(url: endpoint, builder: effective_middleware, request: {timeout: timeout}) do |connection|
104
105
  connection.authorization :Bearer, auth_token unless !auth_token
105
106
  end
106
107
  end
108
+
109
+ def default_middleware
110
+ Faraday::Builder.new do |builder|
111
+ # Needed for encoding of BATCH GET requests
112
+ builder.use Attune::ParamFlattener
113
+
114
+ builder.use Attune::CallDropping
115
+
116
+ builder.request :url_encoded
117
+
118
+ # Allow one retry per request
119
+ builder.request :retry, 1
120
+
121
+ builder.use Attune::JsonLogger, logger if logging_enabled
122
+
123
+ # Gzip requests, Faraday handles responses automatically
124
+ builder.use Attune::Gzip
125
+
126
+ # Raise exceptions for HTTP 4xx/5xx
127
+ builder.response :raise_error
128
+
129
+ builder.adapter :attune_http_persistent
130
+ end
131
+ end
107
132
  end
108
133
  end
109
134
 
@@ -6,7 +6,9 @@ module Attune
6
6
  :middleware,
7
7
  :disabled,
8
8
  :exception_handler,
9
- :timeout
9
+ :timeout,
10
+ :logger,
11
+ :logging_enabled
10
12
  ]
11
13
 
12
14
  # The Authorization token
@@ -25,6 +27,12 @@ module Attune
25
27
  # Time (in seconds) to wait for requests to finish
26
28
  attr_accessor :timeout
27
29
 
30
+ # Logger to write request statistics to
31
+ attr_accessor :logger
32
+
33
+ # Turn request logging on
34
+ attr_accessor :logging_enabled
35
+
28
36
  # How to deal with HTTP exceptions
29
37
  # @param [:mock, :raise] handler Method used for handling exceptions.
30
38
  # @raise [ArgumentError] if handler is not :mock or :raise
@@ -14,33 +14,8 @@ module Attune
14
14
  # user our version of NetHttpPersistent adapter
15
15
  Faraday::Adapter.register_middleware(attune_http_persistent: NetHttpPersistent)
16
16
 
17
- MIDDLEWARE = Faraday::Builder.new do |builder|
18
- # Needed for encoding of BATCH GET requests
19
- builder.use Attune::ParamFlattener
20
-
21
- # Log all requests
22
- builder.use Attune::CallDropping
23
-
24
- builder.request :url_encoded
25
-
26
- # Allow one retry per request
27
- builder.request :retry, 1
28
-
29
- # Log all requests
30
- builder.use Attune::JsonLogger
31
-
32
- # Gzip requests, Faraday handles responses automatically
33
- builder.use Attune::Gzip
34
-
35
- # Raise exceptions for HTTP 4xx/5xx
36
- builder.response :raise_error
37
-
38
- builder.adapter :attune_http_persistent
39
- end
40
-
41
17
  configure do |c|
42
18
  c.endpoint = ENDPOINT
43
- c.middleware = MIDDLEWARE
44
19
  c.disabled = false
45
20
  c.exception_handler = :raise
46
21
  c.timeout = 1
@@ -1,4 +1,4 @@
1
1
  module Attune
2
- VERSION = "1.0.11"
2
+ VERSION = "1.0.12"
3
3
  end
4
4
 
@@ -7,7 +7,6 @@ describe Attune::Client do
7
7
  context "with defaults" do
8
8
  let(:options){ {} }
9
9
  specify { expect(subject.endpoint).to eq(Attune::Default::ENDPOINT) }
10
- specify { expect(subject.middleware).to eq(Attune::Default::MIDDLEWARE) }
11
10
  end
12
11
  context "with custom endpoint" do
13
12
  let(:endpoint){ 'http://example.com/' }
data/spec/remote_spec.rb CHANGED
@@ -11,7 +11,7 @@ describe "remote requests" do
11
11
  pending "REMOTE_ENDPOINT required for remote spec" unless endpoint
12
12
  pending "AUTH_TOKEN required for remote spec" unless auth_token
13
13
  end
14
- let!(:client){ Attune::Client.new(endpoint: endpoint, auth_token: auth_token) }
14
+ let!(:client){ Attune::Client.new(endpoint: endpoint, auth_token: auth_token, timeout: 20) }
15
15
 
16
16
  it "can request an auth_token given a client id and secret" do
17
17
  pending "CLIENT_ID required for get_auth_token spec" unless client_id
@@ -66,4 +66,34 @@ describe "remote requests" do
66
66
  ranking.sort.should == entities.map(&:to_s).sort
67
67
  end
68
68
  end
69
+
70
+ it 'should call blacklist api' do
71
+ # create
72
+ params = Attune::Model::BlacklistParams.new
73
+ params.ids = [1,2,3]
74
+ params.entity_type = 'products'
75
+ scope = Attune::Model::ScopeEntry.new
76
+ scope.name = 'page'
77
+ scope.value = 'sale'
78
+ params.scope = [scope]
79
+ params.active_from = DateTime.now
80
+ params.active_to = DateTime.now + 7
81
+ response = client.entities.blacklist_save(params)
82
+ blacklist_id = response.id
83
+ blacklist_id.should match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)
84
+ # get
85
+ blacklist = client.entities.blacklist_get(blacklist_id)
86
+ blacklist.id.should == blacklist_id
87
+ # update
88
+ params = Attune::Model::BlacklistParams.new
89
+ params.disabled = true
90
+ client.entities.blacklist_update(blacklist_id, params)
91
+ blacklist = client.entities.blacklist_get(blacklist_id)
92
+ blacklist.disabled.should == true
93
+ # get all
94
+ all_blacklists = client.entities.blacklist_get_all()
95
+ all_blacklists.blacklists.should be_an Array
96
+ # delete
97
+ client.entities.blacklist_delete(blacklist_id)
98
+ end
69
99
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attune
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Hawthorn
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-24 00:00:00.000000000 Z
12
+ date: 2014-08-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday