Skip to content

Commit 075e52f

Browse files
authored
[DEVREL-115] Remove prod / dev URL switching
2 parents 7e3f87b + 8ace76f commit 075e52f

File tree

7 files changed

+27
-36
lines changed

7 files changed

+27
-36
lines changed

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,21 @@ bundle exec ruby spec/integration/RecipientTest.rb
5252
```ruby
5353
require 'trolley'
5454

55-
client = Trolley.client('YOUR-API-KEY', 'YOUR-SECRET-KEY')
55+
client = Trolley.client('ACCESS-KEY', 'SECRET-KEY')
5656

5757
recipient = client.recipient.find('R-1234567abcdefg')
5858
print recipient.id
5959
```
6060

61-
#### Need a proxy?
61+
#### Configuring a proxy
6262

6363
```Ruby
64-
client = Trolley.client('YOUR-API-KEY', 'YOUR-SECRET-KEY', 'production', proxy_uri: 'peter_the_proxy.com')
64+
client = Trolley.client('ACCESS-KEY', 'SECRET-KEY', proxy_uri: 'peter_the_proxy.com')
65+
```
66+
67+
### Configuring a custom base API URL
68+
```ruby
69+
client = Trolley.client('key', 'secret', api_base: 'https://api.railz.io')
6570
```
6671

6772
## Documentation for API Endpoints

lib/trolley.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
module Trolley
2525
VERSION = '1.0.0'.freeze
2626

27-
def self.client(key, secret, environment = 'production', **optionals)
28-
Gateway.new(Configuration.new(key, secret, environment, **optionals))
27+
def self.client(key, secret, **optionals)
28+
Gateway.new(Configuration.new(key, secret, **optionals))
2929
end
3030
end

lib/trolley/Client.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def patch(endPoint, body)
3636
# rubocop:disable Metrics/CyclomaticComplexity
3737
# rubocop:disable Metrics/PerceivedComplexity
3838
def send_request(endPoint, method, body = '')
39-
uri = URI.parse(@config.apiBase + endPoint)
39+
uri = URI.parse(@config.api_base + endPoint)
4040
http = Net::HTTP.new(
4141
uri.host, uri.port,
4242
@config.proxy&.host, @config.proxy&.port, @config.proxy&.user, @config.proxy&.password

lib/trolley/Configuration.rb

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,30 @@
11
module Trolley
22
class Configuration
33
class InvalidProxyAddress < StandardError; end
4+
attr_reader :api_base, :proxy, :environment
45

5-
def initialize(publicKey, privateKey, environment = 'production', proxy_uri: nil)
6+
DEFAULT_API_BASE = 'https://api.trolley.com'.freeze
7+
8+
def initialize(publicKey, privateKey, **optionals)
69
raise ArgumentError, 'Both key/secret must be a nonempty string' if publicKey.to_s&.empty? || privateKey.to_s&.empty?
710

811
@publicKey = publicKey
912
@privateKey = privateKey
10-
@environment = environment
13+
@api_base = optionals[:api_base] || DEFAULT_API_BASE
1114
# failfast on a bad proxy
15+
proxy_uri = optionals[:proxy_uri]
1216
begin
1317
@proxy = proxy_uri.nil? ? nil : URI.parse(proxy_uri)
1418
rescue URI::InvalidURIError
1519
raise InvalidProxyAddress, "Invalid proxy provided to configuration: #{proxy_uri}"
1620
end
1721
end
1822

19-
def apiBase
20-
case environment
21-
when 'production'
22-
'https://api.trolley.com'
23-
when 'development'
24-
'https://api.railz.io'
25-
when 'integration'
26-
'http://api.local.dev:3000'
27-
else
28-
'https://api.trolley.com'
29-
end
30-
end
31-
3223
def useSsl?
33-
apiBase.start_with? 'https'
24+
api_base.start_with? 'https'
3425
end
3526

3627
attr_accessor :publicKey, :privateKey
37-
attr_reader :proxy, :environment
3828

3929
end
4030
end

spec/integration/helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def setup
88
@client = Trolley.client(
99
ENV.fetch('SANDBOX_API_KEY'),
1010
ENV.fetch('SANDBOX_SECRET_KEY'),
11-
'production',
11+
api_base: ENV['API_BASE'],
1212
proxy_uri: ENV['PROXY_URI']
1313
)
1414
end

spec/unit/ConfigurationTest.rb

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,24 @@ def test_new_nonempty_string
2121
end
2222

2323
def test_api_base
24-
assert_equal 'http://api.local.dev:3000', Trolley::Configuration.new('key', 'secret', 'integration').apiBase
25-
assert_equal 'https://api.trolley.com', Trolley::Configuration.new('key', 'secret', 'production').apiBase
26-
assert_equal 'https://api.railz.io', Trolley::Configuration.new('key', 'secret', 'development').apiBase
27-
assert_equal 'https://api.trolley.com', Trolley::Configuration.new('key', 'secret', 'non_standard_environment').apiBase
24+
assert_equal 'https://api.trolley.com', Trolley::Configuration.new('key', 'secret').api_base
25+
assert_equal 'http://localhost:8080', Trolley::Configuration.new('key', 'secret', api_base: 'http://localhost:8080').api_base
2826
end
2927

3028
def test_use_ssl?
31-
assert_equal false, Trolley::Configuration.new('key', 'secret', 'integration').useSsl?
32-
assert_equal true, Trolley::Configuration.new('key', 'secret', 'production').useSsl?
33-
assert_equal true, Trolley::Configuration.new('key', 'secret', 'development').useSsl?
34-
assert_equal true, Trolley::Configuration.new('key', 'secret', 'non_standard_environment').useSsl?
29+
assert_equal false, Trolley::Configuration.new('key', 'secret', api_base: 'http://example.com').useSsl?
30+
assert_equal true, Trolley::Configuration.new('key', 'secret').useSsl?
3531
end
3632

3733
def test_invalid_proxy_uri
3834
proxy_uri = 'not_://*a_valid_proxy'
3935
assert_raise Trolley::Configuration::InvalidProxyAddress.new("Invalid proxy provided to configuration: #{proxy_uri}") do
40-
Trolley::Configuration.new('k', 's', 'production', proxy_uri: proxy_uri).proxy
36+
Trolley::Configuration.new('k', 's', proxy_uri: proxy_uri).proxy
4137
end
4238
end
4339

4440
def test_vaid_proxy_uri
45-
config = Trolley::Configuration.new('k', 's', 'production', proxy_uri: 'http://user:pass@gimmeproxy.com:80')
41+
config = Trolley::Configuration.new('k', 's', proxy_uri: 'http://user:pass@gimmeproxy.com:80')
4642
assert_equal 'gimmeproxy.com', config.proxy.host
4743
assert_equal 80, config.proxy.port
4844
assert_equal 'user', config.proxy.user

spec/unit/TrolleyTest.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33

44
class PaymentRailsTest < Test::Unit::TestCase
55
def test_client
6-
Trolley.client('key', 'secret', 'environment', proxy_uri: 'http://user:pass@gimmeproxy.com:80')
6+
Trolley.client('key', 'secret', proxy_uri: 'http://user:pass@gimmeproxy.com:80')
77
end
88

99
def test_client_invalid_proxy_uri
1010
proxy_uri = 'not_://*a_valid_proxy'
1111
assert_raise Trolley::Configuration::InvalidProxyAddress.new("Invalid proxy provided to configuration: #{proxy_uri}") do
12-
Trolley.client('k', 's', 'production', proxy_uri: proxy_uri)
12+
Trolley.client('k', 's', proxy_uri: proxy_uri)
1313
end
1414
end
1515
end

0 commit comments

Comments
 (0)