gocardless_pro 0.3.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -29
  3. data/lib/gocardless_pro.rb +7 -3
  4. data/lib/gocardless_pro/api_response.rb +14 -0
  5. data/lib/gocardless_pro/client.rb +24 -12
  6. data/lib/gocardless_pro/list_response.rb +7 -3
  7. data/lib/gocardless_pro/request.rb +3 -11
  8. data/lib/gocardless_pro/resources/{helper.rb → bank_details_lookup.rb} +15 -4
  9. data/lib/gocardless_pro/resources/creditor.rb +14 -13
  10. data/lib/gocardless_pro/resources/creditor_bank_account.rb +14 -10
  11. data/lib/gocardless_pro/resources/customer.rb +8 -4
  12. data/lib/gocardless_pro/resources/customer_bank_account.rb +15 -13
  13. data/lib/gocardless_pro/resources/event.rb +6 -1
  14. data/lib/gocardless_pro/resources/mandate.rb +10 -7
  15. data/lib/gocardless_pro/resources/mandate_pdf.rb +42 -0
  16. data/lib/gocardless_pro/resources/payment.rb +12 -11
  17. data/lib/gocardless_pro/resources/payout.rb +9 -6
  18. data/lib/gocardless_pro/resources/redirect_flow.rb +24 -30
  19. data/lib/gocardless_pro/resources/refund.rb +15 -15
  20. data/lib/gocardless_pro/resources/subscription.rb +26 -22
  21. data/lib/gocardless_pro/response.rb +5 -0
  22. data/lib/gocardless_pro/services/bank_details_lookups_service.rb +55 -0
  23. data/lib/gocardless_pro/services/creditor_bank_accounts_service.rb +8 -9
  24. data/lib/gocardless_pro/services/creditors_service.rb +6 -7
  25. data/lib/gocardless_pro/services/customer_bank_accounts_service.rb +15 -18
  26. data/lib/gocardless_pro/services/customers_service.rb +6 -7
  27. data/lib/gocardless_pro/services/events_service.rb +4 -6
  28. data/lib/gocardless_pro/services/mandate_pdfs_service.rb +63 -0
  29. data/lib/gocardless_pro/services/mandates_service.rb +12 -24
  30. data/lib/gocardless_pro/services/payments_service.rb +15 -16
  31. data/lib/gocardless_pro/services/payouts_service.rb +5 -6
  32. data/lib/gocardless_pro/services/redirect_flows_service.rb +13 -17
  33. data/lib/gocardless_pro/services/refunds_service.rb +16 -19
  34. data/lib/gocardless_pro/services/subscriptions_service.rb +10 -11
  35. data/lib/gocardless_pro/version.rb +1 -1
  36. data/spec/api_response_spec.rb +28 -0
  37. data/spec/resources/bank_details_lookup_spec.rb +39 -0
  38. data/spec/resources/creditor_spec.rb +0 -4
  39. data/spec/resources/{helper_spec.rb → mandate_pdf_spec.rb} +17 -1
  40. data/spec/resources/subscription_spec.rb +4 -4
  41. data/spec/services/bank_details_lookups_service_spec.rb +80 -0
  42. data/spec/services/creditor_bank_accounts_service_spec.rb +2 -0
  43. data/spec/services/creditors_service_spec.rb +2 -0
  44. data/spec/services/customer_bank_accounts_service_spec.rb +2 -0
  45. data/spec/services/customers_service_spec.rb +2 -0
  46. data/spec/services/events_service_spec.rb +2 -0
  47. data/spec/services/mandate_pdfs_service_spec.rb +80 -0
  48. data/spec/services/mandates_service_spec.rb +2 -0
  49. data/spec/services/payments_service_spec.rb +2 -0
  50. data/spec/services/payouts_service_spec.rb +2 -0
  51. data/spec/services/refunds_service_spec.rb +2 -0
  52. data/spec/services/subscriptions_service_spec.rb +26 -24
  53. metadata +17 -8
  54. data/lib/gocardless_pro/services/helpers_service.rb +0 -99
  55. data/spec/services/helpers_service_spec.rb +0 -122
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gocardless_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GoCardless
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-24 00:00:00.000000000 Z
11
+ date: 2015-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -101,6 +101,7 @@ files:
101
101
  - demo.rb
102
102
  - gocardless_pro.gemspec
103
103
  - lib/gocardless_pro.rb
104
+ - lib/gocardless_pro/api_response.rb
104
105
  - lib/gocardless_pro/api_service.rb
105
106
  - lib/gocardless_pro/client.rb
106
107
  - lib/gocardless_pro/error.rb
@@ -111,26 +112,28 @@ files:
111
112
  - lib/gocardless_pro/list_response.rb
112
113
  - lib/gocardless_pro/paginator.rb
113
114
  - lib/gocardless_pro/request.rb
115
+ - lib/gocardless_pro/resources/bank_details_lookup.rb
114
116
  - lib/gocardless_pro/resources/creditor.rb
115
117
  - lib/gocardless_pro/resources/creditor_bank_account.rb
116
118
  - lib/gocardless_pro/resources/customer.rb
117
119
  - lib/gocardless_pro/resources/customer_bank_account.rb
118
120
  - lib/gocardless_pro/resources/event.rb
119
- - lib/gocardless_pro/resources/helper.rb
120
121
  - lib/gocardless_pro/resources/mandate.rb
122
+ - lib/gocardless_pro/resources/mandate_pdf.rb
121
123
  - lib/gocardless_pro/resources/payment.rb
122
124
  - lib/gocardless_pro/resources/payout.rb
123
125
  - lib/gocardless_pro/resources/redirect_flow.rb
124
126
  - lib/gocardless_pro/resources/refund.rb
125
127
  - lib/gocardless_pro/resources/subscription.rb
126
128
  - lib/gocardless_pro/response.rb
129
+ - lib/gocardless_pro/services/bank_details_lookups_service.rb
127
130
  - lib/gocardless_pro/services/base_service.rb
128
131
  - lib/gocardless_pro/services/creditor_bank_accounts_service.rb
129
132
  - lib/gocardless_pro/services/creditors_service.rb
130
133
  - lib/gocardless_pro/services/customer_bank_accounts_service.rb
131
134
  - lib/gocardless_pro/services/customers_service.rb
132
135
  - lib/gocardless_pro/services/events_service.rb
133
- - lib/gocardless_pro/services/helpers_service.rb
136
+ - lib/gocardless_pro/services/mandate_pdfs_service.rb
134
137
  - lib/gocardless_pro/services/mandates_service.rb
135
138
  - lib/gocardless_pro/services/payments_service.rb
136
139
  - lib/gocardless_pro/services/payouts_service.rb
@@ -138,15 +141,17 @@ files:
138
141
  - lib/gocardless_pro/services/refunds_service.rb
139
142
  - lib/gocardless_pro/services/subscriptions_service.rb
140
143
  - lib/gocardless_pro/version.rb
144
+ - spec/api_response_spec.rb
141
145
  - spec/api_service_spec.rb
142
146
  - spec/client_spec.rb
143
147
  - spec/error_spec.rb
148
+ - spec/resources/bank_details_lookup_spec.rb
144
149
  - spec/resources/creditor_bank_account_spec.rb
145
150
  - spec/resources/creditor_spec.rb
146
151
  - spec/resources/customer_bank_account_spec.rb
147
152
  - spec/resources/customer_spec.rb
148
153
  - spec/resources/event_spec.rb
149
- - spec/resources/helper_spec.rb
154
+ - spec/resources/mandate_pdf_spec.rb
150
155
  - spec/resources/mandate_spec.rb
151
156
  - spec/resources/payment_spec.rb
152
157
  - spec/resources/payout_spec.rb
@@ -154,12 +159,13 @@ files:
154
159
  - spec/resources/refund_spec.rb
155
160
  - spec/resources/subscription_spec.rb
156
161
  - spec/response_spec.rb
162
+ - spec/services/bank_details_lookups_service_spec.rb
157
163
  - spec/services/creditor_bank_accounts_service_spec.rb
158
164
  - spec/services/creditors_service_spec.rb
159
165
  - spec/services/customer_bank_accounts_service_spec.rb
160
166
  - spec/services/customers_service_spec.rb
161
167
  - spec/services/events_service_spec.rb
162
- - spec/services/helpers_service_spec.rb
168
+ - spec/services/mandate_pdfs_service_spec.rb
163
169
  - spec/services/mandates_service_spec.rb
164
170
  - spec/services/payments_service_spec.rb
165
171
  - spec/services/payouts_service_spec.rb
@@ -192,15 +198,17 @@ signing_key:
192
198
  specification_version: 4
193
199
  summary: A gem for calling the GoCardless Pro API
194
200
  test_files:
201
+ - spec/api_response_spec.rb
195
202
  - spec/api_service_spec.rb
196
203
  - spec/client_spec.rb
197
204
  - spec/error_spec.rb
205
+ - spec/resources/bank_details_lookup_spec.rb
198
206
  - spec/resources/creditor_bank_account_spec.rb
199
207
  - spec/resources/creditor_spec.rb
200
208
  - spec/resources/customer_bank_account_spec.rb
201
209
  - spec/resources/customer_spec.rb
202
210
  - spec/resources/event_spec.rb
203
- - spec/resources/helper_spec.rb
211
+ - spec/resources/mandate_pdf_spec.rb
204
212
  - spec/resources/mandate_spec.rb
205
213
  - spec/resources/payment_spec.rb
206
214
  - spec/resources/payout_spec.rb
@@ -208,12 +216,13 @@ test_files:
208
216
  - spec/resources/refund_spec.rb
209
217
  - spec/resources/subscription_spec.rb
210
218
  - spec/response_spec.rb
219
+ - spec/services/bank_details_lookups_service_spec.rb
211
220
  - spec/services/creditor_bank_accounts_service_spec.rb
212
221
  - spec/services/creditors_service_spec.rb
213
222
  - spec/services/customer_bank_accounts_service_spec.rb
214
223
  - spec/services/customers_service_spec.rb
215
224
  - spec/services/events_service_spec.rb
216
- - spec/services/helpers_service_spec.rb
225
+ - spec/services/mandate_pdfs_service_spec.rb
217
226
  - spec/services/mandates_service_spec.rb
218
227
  - spec/services/payments_service_spec.rb
219
228
  - spec/services/payouts_service_spec.rb
@@ -1,99 +0,0 @@
1
- require_relative './base_service'
2
-
3
- # encoding: utf-8
4
- #
5
- # WARNING: Do not edit by hand, this file was generated by Crank:
6
- #
7
- # https://github.com/gocardless/crank
8
-
9
- module GoCardlessPro
10
- module Services
11
- # Service for making requests to the Helper endpoints
12
- class HelpersService < BaseService
13
- # Returns a PDF mandate form with a signature field, ready to be signed by your
14
- # customer. May be fully or partially pre-filled.
15
- #
16
- # You must specify `Accept:
17
- # application/pdf` on requests to this endpoint.
18
- #
19
- # Bank account details may
20
- # either be supplied using the IBAN (international bank account number), or
21
- # [local
22
- # details](https://developer.gocardless.com/pro/2015-04-29/#ui-local-bank-details).
23
- # For more information on the different fields required in each country, please
24
- # see the [local bank
25
- # details](https://developer.gocardless.com/pro/2015-04-29/#ui-local-bank-details)
26
- # section.
27
- #
28
- # To generate a mandate in a foreign language, set your
29
- # `Accept-Language` header to the relevant [ISO
30
- # 639-1](http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes#Partial_ISO_639_table)
31
- # language code. Currently Dutch, English, French, German, Italian, Portuguese
32
- # and Spanish are supported.
33
- #
34
- # _Note:_ If you want to render a PDF of an
35
- # existing mandate you can also do so using the [mandate show
36
- # endpoint](https://developer.gocardless.com/pro/2015-04-29/#mandates-get-a-single-mandate).
37
- # Example URL: /helpers/mandate
38
- # @param options [Hash] parameters as a hash, under a params key.
39
- def mandate(options = {})
40
- path = '/helpers/mandate'
41
-
42
- params = options.delete(:params) || {}
43
- options[:params] = {}
44
- options[:params]['data'] = params
45
- response = make_request(:post, path, options)
46
-
47
- return if response.body.nil?
48
- Resources::Helper.new(unenvelope_body(response.body))
49
- end
50
-
51
- # Check whether an account number and bank / branch code combination are
52
- # compatible.
53
- #
54
- # Bank account details may either be supplied using the IBAN
55
- # (international bank account number), or [local
56
- # details](https://developer.gocardless.com/pro/2015-04-29/#ui-local-bank-details).
57
- # For more information on the different fields required in each country, please
58
- # see the [local bank
59
- # details](https://developer.gocardless.com/pro/2015-04-29/#ui-local-bank-details)
60
- # section.
61
- # Example URL: /helpers/modulus_check
62
- # @param options [Hash] parameters as a hash, under a params key.
63
- def modulus_check(options = {})
64
- path = '/helpers/modulus_check'
65
-
66
- params = options.delete(:params) || {}
67
- options[:params] = {}
68
- options[:params]['data'] = params
69
- response = make_request(:post, path, options)
70
-
71
- return if response.body.nil?
72
- Resources::Helper.new(unenvelope_body(response.body))
73
- end
74
-
75
- # Unenvelope the response of the body using the service's `envelope_key`
76
- #
77
- # @param body [Hash]
78
- def unenvelope_body(body)
79
- body[envelope_key] || body['data']
80
- end
81
-
82
- private
83
-
84
- # return the key which API responses will envelope data under
85
- def envelope_key
86
- 'helpers'
87
- end
88
-
89
- # take a URL with placeholder params and substitute them out for the acutal value
90
- # @param url [String] the URL with placeholders in
91
- # @param param_map [Hash] a hash of placeholders and their actual values
92
- def sub_url(url, param_map)
93
- param_map.reduce(url) do |new_url, (param, value)|
94
- new_url.gsub(":#{param}", value)
95
- end
96
- end
97
- end
98
- end
99
- end
@@ -1,122 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe GoCardlessPro::Services::HelpersService do
4
- let(:client) do
5
- GoCardlessPro::Client.new(
6
- access_token: "SECRET_TOKEN"
7
- )
8
- end
9
-
10
-
11
-
12
-
13
-
14
-
15
- describe "#mandate" do
16
-
17
-
18
- subject(:post_response) { client.helpers.mandate }
19
-
20
- let(:resource_id) { "ABC123" }
21
-
22
- let!(:stub) do
23
- # /helpers/mandate
24
- stub_url = "/helpers/mandate".gsub(':identity', resource_id)
25
- stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
26
- body: {
27
- helpers: {
28
-
29
- }
30
- }.to_json,
31
- headers: {'Content-Type' => 'application/json'},
32
- )
33
- end
34
-
35
- it "wraps the response and calls the right endpoint" do
36
- expect(post_response).to be_a(GoCardlessPro::Resources::Helper)
37
-
38
- expect(stub).to have_been_requested
39
- end
40
-
41
- context "when the request needs a body and custom header" do
42
-
43
- subject(:post_response) { client.helpers.mandate(body, headers) }
44
-
45
- let(:resource_id) { "ABC123" }
46
-
47
- let!(:stub) do
48
- # /helpers/mandate
49
- stub_url = "/helpers/mandate".gsub(':identity', resource_id)
50
- stub_request(:post, /.*api.gocardless.com#{stub_url}/).
51
- with(
52
- body: { foo: 'bar' },
53
- headers: { 'Foo' => 'Bar' }
54
- ).to_return(
55
- body: {
56
- helpers: {
57
-
58
- }
59
- }.to_json,
60
- headers: {'Content-Type' => 'application/json'},
61
- )
62
- end
63
- end
64
- end
65
-
66
-
67
-
68
-
69
-
70
- describe "#modulus_check" do
71
-
72
-
73
- subject(:post_response) { client.helpers.modulus_check }
74
-
75
- let(:resource_id) { "ABC123" }
76
-
77
- let!(:stub) do
78
- # /helpers/modulus_check
79
- stub_url = "/helpers/modulus_check".gsub(':identity', resource_id)
80
- stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
81
- body: {
82
- helpers: {
83
-
84
- }
85
- }.to_json,
86
- headers: {'Content-Type' => 'application/json'},
87
- )
88
- end
89
-
90
- it "wraps the response and calls the right endpoint" do
91
- expect(post_response).to be_a(GoCardlessPro::Resources::Helper)
92
-
93
- expect(stub).to have_been_requested
94
- end
95
-
96
- context "when the request needs a body and custom header" do
97
-
98
- subject(:post_response) { client.helpers.modulus_check(body, headers) }
99
-
100
- let(:resource_id) { "ABC123" }
101
-
102
- let!(:stub) do
103
- # /helpers/modulus_check
104
- stub_url = "/helpers/modulus_check".gsub(':identity', resource_id)
105
- stub_request(:post, /.*api.gocardless.com#{stub_url}/).
106
- with(
107
- body: { foo: 'bar' },
108
- headers: { 'Foo' => 'Bar' }
109
- ).to_return(
110
- body: {
111
- helpers: {
112
-
113
- }
114
- }.to_json,
115
- headers: {'Content-Type' => 'application/json'},
116
- )
117
- end
118
- end
119
- end
120
-
121
-
122
- end