attune 1.0.11 → 1.0.12

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: 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