gocardless-pro 0.1.1 → 0.2.0
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 +4 -4
- data/README.md +2 -4
- data/lib/gocardless-pro.rb +1 -169
- data/lib/gocardless-pro/api_service.rb +2 -2
- data/lib/gocardless-pro/client.rb +135 -0
- data/lib/gocardless-pro/version.rb +1 -1
- data/spec/api_service_spec.rb +3 -2
- data/spec/client_spec.rb +4 -14
- data/spec/services/creditor_bank_account_service_spec.rb +1 -2
- data/spec/services/creditor_service_spec.rb +1 -2
- data/spec/services/customer_bank_account_service_spec.rb +1 -2
- data/spec/services/customer_service_spec.rb +1 -2
- data/spec/services/event_service_spec.rb +1 -2
- data/spec/services/helper_service_spec.rb +1 -2
- data/spec/services/mandate_service_spec.rb +1 -2
- data/spec/services/payment_service_spec.rb +1 -2
- data/spec/services/payout_service_spec.rb +1 -2
- data/spec/services/redirect_flow_service_spec.rb +1 -2
- data/spec/services/refund_service_spec.rb +1 -2
- data/spec/services/subscription_service_spec.rb +1 -2
- metadata +2 -25
- data/lib/gocardless-pro/resources/api_key.rb +0 -62
- data/lib/gocardless-pro/resources/publishable_api_key.rb +0 -51
- data/lib/gocardless-pro/resources/role.rb +0 -101
- data/lib/gocardless-pro/resources/user.rb +0 -60
- data/lib/gocardless-pro/services/api_key_service.rb +0 -130
- data/lib/gocardless-pro/services/publishable_api_key_service.rb +0 -130
- data/lib/gocardless-pro/services/role_service.rb +0 -127
- data/lib/gocardless-pro/services/user_service.rb +0 -148
- data/spec/resources/api_key_spec.rb +0 -85
- data/spec/resources/publishable_api_key_spec.rb +0 -63
- data/spec/resources/role_spec.rb +0 -63
- data/spec/resources/user_spec.rb +0 -85
- data/spec/services/api_key_service_spec.rb +0 -362
- data/spec/services/publishable_api_key_service_spec.rb +0 -336
- data/spec/services/role_service_spec.rb +0 -336
- data/spec/services/user_service_spec.rb +0 -433
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc97cc92944bdc8032081deee54e766bb9aa95bc
|
4
|
+
data.tar.gz: f5c6b37dd5d70425c9c6b0e127013c013fe9fd7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 867c8018cab90326aaa0e258b631240753e1b4820b8a4a4dd3339519d093dd6ce1360cdf87d5330f6e081f319c66172ef5fa3755990a6988bfb08af679b1887f
|
7
|
+
data.tar.gz: 17ca6a9c7464c075216cec90f373bcb4b38a4a94fa9e76e59eee44b9c44e91234426d0a4bf976af14e1bf68961229908d726fbe2d486f683a98eeec17617f8b6
|
data/README.md
CHANGED
@@ -26,14 +26,12 @@ require 'gocardless-pro'
|
|
26
26
|
|
27
27
|
### Initialising the client
|
28
28
|
|
29
|
-
The client is initialised with
|
30
|
-
|
29
|
+
The client is initialised with an Access Token.
|
31
30
|
You can also pass in `environment` as `:sandbox` to make requests to the sandbox environment rather than the live one.
|
32
31
|
|
33
32
|
```rb
|
34
33
|
@client = GoCardless::Client.new(
|
35
|
-
|
36
|
-
api_secret: ENV["GOCARDLESS_API_KEY"]
|
34
|
+
token: ENV["GOCARDLESS_TOKEN"]
|
37
35
|
)
|
38
36
|
```
|
39
37
|
|
data/lib/gocardless-pro.rb
CHANGED
@@ -34,9 +34,6 @@ require_relative 'gocardless-pro/paginator'
|
|
34
34
|
require_relative 'gocardless-pro/request'
|
35
35
|
require_relative 'gocardless-pro/response'
|
36
36
|
|
37
|
-
require_relative 'gocardless-pro/resources/api_key'
|
38
|
-
require_relative 'gocardless-pro/services/api_key_service'
|
39
|
-
|
40
37
|
require_relative 'gocardless-pro/resources/creditor'
|
41
38
|
require_relative 'gocardless-pro/services/creditor_service'
|
42
39
|
|
@@ -64,178 +61,13 @@ require_relative 'gocardless-pro/services/payment_service'
|
|
64
61
|
require_relative 'gocardless-pro/resources/payout'
|
65
62
|
require_relative 'gocardless-pro/services/payout_service'
|
66
63
|
|
67
|
-
require_relative 'gocardless-pro/resources/publishable_api_key'
|
68
|
-
require_relative 'gocardless-pro/services/publishable_api_key_service'
|
69
|
-
|
70
64
|
require_relative 'gocardless-pro/resources/redirect_flow'
|
71
65
|
require_relative 'gocardless-pro/services/redirect_flow_service'
|
72
66
|
|
73
67
|
require_relative 'gocardless-pro/resources/refund'
|
74
68
|
require_relative 'gocardless-pro/services/refund_service'
|
75
69
|
|
76
|
-
require_relative 'gocardless-pro/resources/role'
|
77
|
-
require_relative 'gocardless-pro/services/role_service'
|
78
|
-
|
79
70
|
require_relative 'gocardless-pro/resources/subscription'
|
80
71
|
require_relative 'gocardless-pro/services/subscription_service'
|
81
72
|
|
82
|
-
require_relative 'gocardless-pro/
|
83
|
-
require_relative 'gocardless-pro/services/user_service'
|
84
|
-
|
85
|
-
module GoCardless
|
86
|
-
# A class for working with and talking to the GoCardless API
|
87
|
-
class Client
|
88
|
-
extend Forwardable
|
89
|
-
|
90
|
-
# Access to the service for api_key to make API calls
|
91
|
-
def api_keys
|
92
|
-
@api_keys ||= Services::ApiKeyService.new(@api_service)
|
93
|
-
end
|
94
|
-
|
95
|
-
# Access to the service for creditor to make API calls
|
96
|
-
def creditors
|
97
|
-
@creditors ||= Services::CreditorService.new(@api_service)
|
98
|
-
end
|
99
|
-
|
100
|
-
# Access to the service for creditor_bank_account to make API calls
|
101
|
-
def creditor_bank_accounts
|
102
|
-
@creditor_bank_accounts ||= Services::CreditorBankAccountService.new(@api_service)
|
103
|
-
end
|
104
|
-
|
105
|
-
# Access to the service for customer to make API calls
|
106
|
-
def customers
|
107
|
-
@customers ||= Services::CustomerService.new(@api_service)
|
108
|
-
end
|
109
|
-
|
110
|
-
# Access to the service for customer_bank_account to make API calls
|
111
|
-
def customer_bank_accounts
|
112
|
-
@customer_bank_accounts ||= Services::CustomerBankAccountService.new(@api_service)
|
113
|
-
end
|
114
|
-
|
115
|
-
# Access to the service for event to make API calls
|
116
|
-
def events
|
117
|
-
@events ||= Services::EventService.new(@api_service)
|
118
|
-
end
|
119
|
-
|
120
|
-
# Access to the service for helper to make API calls
|
121
|
-
def helpers
|
122
|
-
@helpers ||= Services::HelperService.new(@api_service)
|
123
|
-
end
|
124
|
-
|
125
|
-
# Access to the service for mandate to make API calls
|
126
|
-
def mandates
|
127
|
-
@mandates ||= Services::MandateService.new(@api_service)
|
128
|
-
end
|
129
|
-
|
130
|
-
# Access to the service for payment to make API calls
|
131
|
-
def payments
|
132
|
-
@payments ||= Services::PaymentService.new(@api_service)
|
133
|
-
end
|
134
|
-
|
135
|
-
# Access to the service for payout to make API calls
|
136
|
-
def payouts
|
137
|
-
@payouts ||= Services::PayoutService.new(@api_service)
|
138
|
-
end
|
139
|
-
|
140
|
-
# Access to the service for publishable_api_key to make API calls
|
141
|
-
def publishable_api_keys
|
142
|
-
@publishable_api_keys ||= Services::PublishableApiKeyService.new(@api_service)
|
143
|
-
end
|
144
|
-
|
145
|
-
# Access to the service for redirect_flow to make API calls
|
146
|
-
def redirect_flows
|
147
|
-
@redirect_flows ||= Services::RedirectFlowService.new(@api_service)
|
148
|
-
end
|
149
|
-
|
150
|
-
# Access to the service for refund to make API calls
|
151
|
-
def refunds
|
152
|
-
@refunds ||= Services::RefundService.new(@api_service)
|
153
|
-
end
|
154
|
-
|
155
|
-
# Access to the service for role to make API calls
|
156
|
-
def roles
|
157
|
-
@roles ||= Services::RoleService.new(@api_service)
|
158
|
-
end
|
159
|
-
|
160
|
-
# Access to the service for subscription to make API calls
|
161
|
-
def subscriptions
|
162
|
-
@subscriptions ||= Services::SubscriptionService.new(@api_service)
|
163
|
-
end
|
164
|
-
|
165
|
-
# Access to the service for user to make API calls
|
166
|
-
def users
|
167
|
-
@users ||= Services::UserService.new(@api_service)
|
168
|
-
end
|
169
|
-
|
170
|
-
# Get a Client configured to use HTTP Basic authentication with the GC Api
|
171
|
-
#
|
172
|
-
# @param options [Hash<Symbol,String>] configuration for creating the client
|
173
|
-
# @option options [Symbol] :environment the environment to connect to - one of `:live` or `:sandbox`.
|
174
|
-
# @option options [Symbol] :api_key the ID of the API Key
|
175
|
-
# @option options [Symbol] :api_secret the key of the API Key
|
176
|
-
# @option options [Symbol] :url the full URL used to make requests to. If you specify this, it will be used over the `environment` option.
|
177
|
-
# @return [Client] A client configured to use the API with HTTP Basic
|
178
|
-
# authentication.
|
179
|
-
#
|
180
|
-
def initialize(options)
|
181
|
-
api_key = options.delete(:api_key) || fail('No API key ID given to GoCardless Client')
|
182
|
-
api_secret = options.delete(:api_secret) || fail('No API secret given to GoCardless Client')
|
183
|
-
environment = options.delete(:environment) || :live
|
184
|
-
url = options.delete(:url) || url_for_environment(environment)
|
185
|
-
options = custom_options(options)
|
186
|
-
@api_service = ApiService.new(url, api_key, api_secret, options)
|
187
|
-
end
|
188
|
-
|
189
|
-
private
|
190
|
-
|
191
|
-
def url_for_environment(environment)
|
192
|
-
if environment === :live
|
193
|
-
'https://api.gocardless.com'
|
194
|
-
elsif environment === :sandbox
|
195
|
-
'https://api-sandbox.gocardless.com'
|
196
|
-
else
|
197
|
-
fail "Unknown environment key: #{environment}"
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
# Get customized options.
|
202
|
-
def custom_options(options)
|
203
|
-
return default_options if options.nil?
|
204
|
-
|
205
|
-
return default_options.merge(options) unless options[:default_headers]
|
206
|
-
|
207
|
-
opts = default_options.merge(options)
|
208
|
-
opts[:default_headers] = default_options[:default_headers].merge(options[:default_headers])
|
209
|
-
|
210
|
-
opts
|
211
|
-
end
|
212
|
-
|
213
|
-
# Get the default options.
|
214
|
-
def default_options
|
215
|
-
{
|
216
|
-
default_headers: {
|
217
|
-
'GoCardless-Version' => '2014-11-03',
|
218
|
-
'User-Agent' => "#{user_agent}",
|
219
|
-
'Content-Type' => 'application/json'
|
220
|
-
}
|
221
|
-
}
|
222
|
-
end
|
223
|
-
|
224
|
-
def user_agent
|
225
|
-
@user_agent ||=
|
226
|
-
begin
|
227
|
-
gem_name = 'gocardless-pro'
|
228
|
-
gem_info = "#{gem_name}"
|
229
|
-
gem_info += "/v#{ GoCardless::VERSION}" if defined?(GoCardless::VERSION)
|
230
|
-
ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'
|
231
|
-
ruby_version = RUBY_VERSION
|
232
|
-
ruby_version += " p#{RUBY_PATCHLEVEL}" if defined?(RUBY_PATCHLEVEL)
|
233
|
-
comment = ["#{ruby_engine} #{ruby_version}"]
|
234
|
-
comment << "gocardless-pro v#{ GoCardless::VERSION}"
|
235
|
-
comment << "faraday v#{Faraday::VERSION}"
|
236
|
-
comment << RUBY_PLATFORM if defined?(RUBY_PLATFORM)
|
237
|
-
"#{gem_info} (#{comment.join('; ')})"
|
238
|
-
end
|
239
|
-
end
|
240
|
-
end
|
241
|
-
end
|
73
|
+
require_relative 'gocardless-pro/client.rb'
|
@@ -16,7 +16,7 @@ module GoCardless
|
|
16
16
|
# @param key [String] the API Key ID to use
|
17
17
|
# @param secret [String] the API key secret to use
|
18
18
|
# @param options [Hash] additional options to use when creating the service
|
19
|
-
def initialize(url,
|
19
|
+
def initialize(url, token, options = {})
|
20
20
|
@url = url
|
21
21
|
root_url, @path_prefix = unpack_url(url)
|
22
22
|
http_adapter = options[:http_adapter] || [:net_http]
|
@@ -25,7 +25,7 @@ module GoCardless
|
|
25
25
|
end
|
26
26
|
|
27
27
|
@headers = options[:default_headers] || {}
|
28
|
-
@headers['Authorization'] =
|
28
|
+
@headers['Authorization'] = "Bearer #{token}"
|
29
29
|
end
|
30
30
|
|
31
31
|
# Make a request to the API
|
@@ -0,0 +1,135 @@
|
|
1
|
+
module GoCardless
|
2
|
+
# A class for working with and talking to the GoCardless API
|
3
|
+
class Client
|
4
|
+
extend Forwardable
|
5
|
+
|
6
|
+
# Access to the service for creditor to make API calls
|
7
|
+
def creditors
|
8
|
+
@creditors ||= Services::CreditorService.new(@api_service)
|
9
|
+
end
|
10
|
+
|
11
|
+
# Access to the service for creditor_bank_account to make API calls
|
12
|
+
def creditor_bank_accounts
|
13
|
+
@creditor_bank_accounts ||= Services::CreditorBankAccountService.new(@api_service)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Access to the service for customer to make API calls
|
17
|
+
def customers
|
18
|
+
@customers ||= Services::CustomerService.new(@api_service)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Access to the service for customer_bank_account to make API calls
|
22
|
+
def customer_bank_accounts
|
23
|
+
@customer_bank_accounts ||= Services::CustomerBankAccountService.new(@api_service)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Access to the service for event to make API calls
|
27
|
+
def events
|
28
|
+
@events ||= Services::EventService.new(@api_service)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Access to the service for helper to make API calls
|
32
|
+
def helpers
|
33
|
+
@helpers ||= Services::HelperService.new(@api_service)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Access to the service for mandate to make API calls
|
37
|
+
def mandates
|
38
|
+
@mandates ||= Services::MandateService.new(@api_service)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Access to the service for payment to make API calls
|
42
|
+
def payments
|
43
|
+
@payments ||= Services::PaymentService.new(@api_service)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Access to the service for payout to make API calls
|
47
|
+
def payouts
|
48
|
+
@payouts ||= Services::PayoutService.new(@api_service)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Access to the service for redirect_flow to make API calls
|
52
|
+
def redirect_flows
|
53
|
+
@redirect_flows ||= Services::RedirectFlowService.new(@api_service)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Access to the service for refund to make API calls
|
57
|
+
def refunds
|
58
|
+
@refunds ||= Services::RefundService.new(@api_service)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Access to the service for subscription to make API calls
|
62
|
+
def subscriptions
|
63
|
+
@subscriptions ||= Services::SubscriptionService.new(@api_service)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Get a Client configured to use HTTP Basic authentication with the GC Api
|
67
|
+
#
|
68
|
+
# @param options [Hash<Symbol,String>] configuration for creating the client
|
69
|
+
# @option options [Symbol] :environment the environment to connect to - one of `:live` or `:sandbox`.
|
70
|
+
# @option options [Symbol] :token the API token
|
71
|
+
# @option options [Symbol] :url the full URL used to make requests to. If you specify this, it will be used over the `environment` option.
|
72
|
+
# @return [Client] A client configured to use the API with HTTP Basic
|
73
|
+
# authentication.
|
74
|
+
#
|
75
|
+
def initialize(options)
|
76
|
+
access_token = options.delete(:token) || fail('No Access Token given to GoCardless Client')
|
77
|
+
environment = options.delete(:environment) || :live
|
78
|
+
url = options.delete(:url) || url_for_environment(environment)
|
79
|
+
options = custom_options(options)
|
80
|
+
@api_service = ApiService.new(url, access_token, options)
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
def url_for_environment(environment)
|
86
|
+
if environment === :live
|
87
|
+
'https://api.gocardless.com'
|
88
|
+
elsif environment === :sandbox
|
89
|
+
'https://api-sandbox.gocardless.com'
|
90
|
+
else
|
91
|
+
fail "Unknown environment key: #{environment}"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# Get customized options.
|
96
|
+
def custom_options(options)
|
97
|
+
return default_options if options.nil?
|
98
|
+
|
99
|
+
return default_options.merge(options) unless options[:default_headers]
|
100
|
+
|
101
|
+
opts = default_options.merge(options)
|
102
|
+
opts[:default_headers] = default_options[:default_headers].merge(options[:default_headers])
|
103
|
+
|
104
|
+
opts
|
105
|
+
end
|
106
|
+
|
107
|
+
# Get the default options.
|
108
|
+
def default_options
|
109
|
+
{
|
110
|
+
default_headers: {
|
111
|
+
'GoCardless-Version' => '2015-04-07',
|
112
|
+
'User-Agent' => "#{user_agent}",
|
113
|
+
'Content-Type' => 'application/json'
|
114
|
+
}
|
115
|
+
}
|
116
|
+
end
|
117
|
+
|
118
|
+
def user_agent
|
119
|
+
@user_agent ||=
|
120
|
+
begin
|
121
|
+
gem_name = 'gocardless-pro'
|
122
|
+
gem_info = "#{gem_name}"
|
123
|
+
gem_info += "/v#{ GoCardless::VERSION}" if defined?(GoCardless::VERSION)
|
124
|
+
ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'
|
125
|
+
ruby_version = RUBY_VERSION
|
126
|
+
ruby_version += " p#{RUBY_PATCHLEVEL}" if defined?(RUBY_PATCHLEVEL)
|
127
|
+
comment = ["#{ruby_engine} #{ruby_version}"]
|
128
|
+
comment << "gocardless-pro v#{ GoCardless::VERSION}"
|
129
|
+
comment << "faraday v#{Faraday::VERSION}"
|
130
|
+
comment << RUBY_PLATFORM if defined?(RUBY_PLATFORM)
|
131
|
+
"#{gem_info} (#{comment.join('; ')})"
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
data/spec/api_service_spec.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe GoCardless::ApiService do
|
4
|
-
subject(:service) { described_class.new("https://api.example.com", "
|
4
|
+
subject(:service) { described_class.new("https://api.example.com", "secret_token") }
|
5
5
|
|
6
6
|
it "uses basic auth" do
|
7
|
-
stub = stub_request(:get, 'https://
|
7
|
+
stub = stub_request(:get, 'https://api.example.com/customers').
|
8
|
+
with(headers: { "Authorization" => "Bearer secret_token" })
|
8
9
|
service.make_request(:get, "/customers")
|
9
10
|
expect(stub).to have_been_requested
|
10
11
|
end
|
data/spec/client_spec.rb
CHANGED
@@ -6,24 +6,14 @@ describe GoCardless::Client do
|
|
6
6
|
let(:options) do
|
7
7
|
{
|
8
8
|
environment: environment,
|
9
|
-
|
10
|
-
api_secret: api_secret
|
9
|
+
token: token
|
11
10
|
}
|
12
11
|
end
|
13
12
|
|
14
|
-
context "when initialised without an
|
13
|
+
context "when initialised without an Access Token" do
|
15
14
|
let(:environment) { :live }
|
16
|
-
let(:
|
17
|
-
let(:api_key) { nil }
|
15
|
+
let(:token) { nil }
|
18
16
|
|
19
|
-
it { is_expected.to raise_error("No
|
20
|
-
end
|
21
|
-
|
22
|
-
context "when initialised without an API secret" do
|
23
|
-
let(:api_secret) { nil }
|
24
|
-
let(:environment) { :live }
|
25
|
-
let(:api_key) { "AK123" }
|
26
|
-
|
27
|
-
it { is_expected.to raise_error("No API secret given to GoCardless Client") }
|
17
|
+
it { is_expected.to raise_error("No Access Token given to GoCardless Client") }
|
28
18
|
end
|
29
19
|
end
|