Skip to content

Commit 9fdb281

Browse files
author
Will Myers
authored
Add api_version to Client config (#15)
1 parent 0285087 commit 9fdb281

File tree

5 files changed

+37
-3
lines changed

5 files changed

+37
-3
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
Current Version
2+
- Add api_version to Client config
3+
14
2.2.0 March 29, 2017
25
- Add GET support for `Customers` resource
36

lib/button/client.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ def merge_defaults(config)
3939
secure: secure,
4040
timeout: config.fetch(:timeout, nil),
4141
hostname: config.fetch(:hostname, 'api.usebutton.com'),
42-
port: config.fetch(:port, secure ? 443 : 80)
42+
port: config.fetch(:port, secure ? 443 : 80),
43+
api_version: config.fetch(:api_version, nil)
4344
}
4445
end
4546

lib/button/resources/resource.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ def api_request(request, body = nil)
7676
request.basic_auth(@api_key, '')
7777
request['User-Agent'] = USER_AGENT
7878

79+
unless @config[:api_version].nil?
80+
request['X-Button-API-Version'] = @config[:api_version]
81+
end
82+
7983
if !body.nil? && body.respond_to?(:to_json)
8084
request['Content-Type'] = 'application/json'
8185
request.body = body.to_json

test/button/client_test.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ def test_sets_default_config_parameters
2727
hostname: 'api.usebutton.com',
2828
port: 443,
2929
secure: true,
30-
timeout: nil
30+
timeout: nil,
31+
api_version: nil
3132
)
3233
end
3334

@@ -36,7 +37,8 @@ def test_allows_config_overrides
3637
hostname: 'localhost',
3738
port: 8080,
3839
secure: false,
39-
timeout: 20
40+
timeout: 20,
41+
api_version: '2017-01-01'
4042
}
4143

4244
client = Button::Client.new('sk-XXX', config)

test/button/resources/resource_test.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,30 @@ def test_gets_a_resource
111111
assert_equal(response.data[:a], 1)
112112
end
113113

114+
def test_gets_a_resource_at_an_api_version
115+
resource = Button::Resource.new(
116+
'sk-XXX',
117+
secure: true,
118+
timeout: nil,
119+
hostname: 'api.usebutton.com',
120+
port: 443,
121+
api_version: '2017-01-01'
122+
)
123+
124+
headers = {
125+
'Authorization' => 'Basic c2stWFhYOg==',
126+
'User-Agent' => Button::Resource::USER_AGENT,
127+
'X-Button-API-Version' => '2017-01-01'
128+
}
129+
130+
stub_request(:get, 'https://api.usebutton.com/v1/bloop')
131+
.with(headers: headers)
132+
.to_return(status: 200, body: '{ "meta": { "status": "ok" }, "object": { "a": 1 } }')
133+
134+
response = resource.api_get('/v1/bloop')
135+
assert_equal(response.data[:a], 1)
136+
end
137+
114138
def test_gets_a_resource_with_query
115139
stub_request(:get, 'https://api.usebutton.com/v1/bloop?a=1&b=bloop')
116140
.with(headers: @headers)

0 commit comments

Comments
 (0)