gocardless_pro 2.41.0 → 2.41.1

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.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gocardless_pro/api_service.rb +4 -5
  3. data/lib/gocardless_pro/client.rb +3 -3
  4. data/lib/gocardless_pro/error/invalid_state_error.rb +1 -0
  5. data/lib/gocardless_pro/error.rb +1 -0
  6. data/lib/gocardless_pro/middlewares/raise_gocardless_errors.rb +7 -9
  7. data/lib/gocardless_pro/request.rb +5 -7
  8. data/lib/gocardless_pro/resources/bank_authorisation.rb +0 -2
  9. data/lib/gocardless_pro/resources/bank_details_lookup.rb +0 -2
  10. data/lib/gocardless_pro/resources/billing_request.rb +0 -2
  11. data/lib/gocardless_pro/resources/billing_request_flow.rb +0 -2
  12. data/lib/gocardless_pro/resources/billing_request_template.rb +0 -2
  13. data/lib/gocardless_pro/resources/block.rb +0 -2
  14. data/lib/gocardless_pro/resources/creditor.rb +0 -2
  15. data/lib/gocardless_pro/resources/creditor_bank_account.rb +0 -2
  16. data/lib/gocardless_pro/resources/currency_exchange_rate.rb +0 -2
  17. data/lib/gocardless_pro/resources/customer.rb +0 -2
  18. data/lib/gocardless_pro/resources/customer_bank_account.rb +0 -2
  19. data/lib/gocardless_pro/resources/customer_notification.rb +0 -2
  20. data/lib/gocardless_pro/resources/event.rb +0 -2
  21. data/lib/gocardless_pro/resources/instalment_schedule.rb +0 -2
  22. data/lib/gocardless_pro/resources/institution.rb +0 -2
  23. data/lib/gocardless_pro/resources/mandate.rb +0 -2
  24. data/lib/gocardless_pro/resources/mandate_import.rb +0 -2
  25. data/lib/gocardless_pro/resources/mandate_import_entry.rb +0 -2
  26. data/lib/gocardless_pro/resources/mandate_pdf.rb +0 -2
  27. data/lib/gocardless_pro/resources/payer_authorisation.rb +0 -2
  28. data/lib/gocardless_pro/resources/payment.rb +0 -2
  29. data/lib/gocardless_pro/resources/payout.rb +0 -2
  30. data/lib/gocardless_pro/resources/payout_item.rb +0 -2
  31. data/lib/gocardless_pro/resources/redirect_flow.rb +0 -2
  32. data/lib/gocardless_pro/resources/refund.rb +0 -2
  33. data/lib/gocardless_pro/resources/scenario_simulator.rb +0 -2
  34. data/lib/gocardless_pro/resources/scheme_identifier.rb +0 -2
  35. data/lib/gocardless_pro/resources/subscription.rb +0 -2
  36. data/lib/gocardless_pro/resources/tax_rate.rb +0 -2
  37. data/lib/gocardless_pro/resources/verification_detail.rb +0 -2
  38. data/lib/gocardless_pro/resources/webhook.rb +0 -2
  39. data/lib/gocardless_pro/services/bank_authorisations_service.rb +3 -1
  40. data/lib/gocardless_pro/services/billing_request_flows_service.rb +3 -1
  41. data/lib/gocardless_pro/services/billing_request_templates_service.rb +6 -2
  42. data/lib/gocardless_pro/services/billing_requests_service.rb +27 -9
  43. data/lib/gocardless_pro/services/blocks_service.rb +9 -3
  44. data/lib/gocardless_pro/services/creditor_bank_accounts_service.rb +6 -2
  45. data/lib/gocardless_pro/services/creditors_service.rb +9 -3
  46. data/lib/gocardless_pro/services/customer_bank_accounts_service.rb +9 -3
  47. data/lib/gocardless_pro/services/customer_notifications_service.rb +3 -1
  48. data/lib/gocardless_pro/services/customers_service.rb +9 -3
  49. data/lib/gocardless_pro/services/events_service.rb +3 -1
  50. data/lib/gocardless_pro/services/instalment_schedules_service.rb +9 -3
  51. data/lib/gocardless_pro/services/mandate_imports_service.rb +9 -3
  52. data/lib/gocardless_pro/services/mandates_service.rb +12 -4
  53. data/lib/gocardless_pro/services/payer_authorisations_service.rb +12 -4
  54. data/lib/gocardless_pro/services/payments_service.rb +12 -4
  55. data/lib/gocardless_pro/services/payouts_service.rb +6 -2
  56. data/lib/gocardless_pro/services/redirect_flows_service.rb +6 -2
  57. data/lib/gocardless_pro/services/refunds_service.rb +6 -2
  58. data/lib/gocardless_pro/services/scenario_simulators_service.rb +3 -1
  59. data/lib/gocardless_pro/services/scheme_identifiers_service.rb +3 -1
  60. data/lib/gocardless_pro/services/subscriptions_service.rb +15 -5
  61. data/lib/gocardless_pro/services/tax_rates_service.rb +3 -1
  62. data/lib/gocardless_pro/services/webhooks_service.rb +6 -2
  63. data/lib/gocardless_pro/version.rb +1 -2
  64. data/lib/gocardless_pro/webhook.rb +5 -4
  65. data/lib/gocardless_pro.rb +2 -4
  66. metadata +5 -195
  67. data/.github/workflows/tests.yml +0 -40
  68. data/.gitignore +0 -1
  69. data/.rspec +0 -2
  70. data/.rubocop.yml +0 -5
  71. data/.travis.yml +0 -10
  72. data/LICENSE.txt +0 -22
  73. data/demo.rb +0 -9
  74. data/gocardless_pro.gemspec +0 -39
  75. data/spec/api_response_spec.rb +0 -28
  76. data/spec/api_service_spec.rb +0 -188
  77. data/spec/client_spec.rb +0 -19
  78. data/spec/error_spec.rb +0 -53
  79. data/spec/middlewares/raise_gocardless_errors_spec.rb +0 -127
  80. data/spec/resources/bank_authorisation_spec.rb +0 -259
  81. data/spec/resources/bank_details_lookup_spec.rb +0 -121
  82. data/spec/resources/billing_request_flow_spec.rb +0 -257
  83. data/spec/resources/billing_request_spec.rb +0 -962
  84. data/spec/resources/billing_request_template_spec.rb +0 -515
  85. data/spec/resources/block_spec.rb +0 -577
  86. data/spec/resources/creditor_bank_account_spec.rb +0 -472
  87. data/spec/resources/creditor_spec.rb +0 -659
  88. data/spec/resources/currency_exchange_rate_spec.rb +0 -103
  89. data/spec/resources/customer_bank_account_spec.rb +0 -509
  90. data/spec/resources/customer_notification_spec.rb +0 -75
  91. data/spec/resources/customer_spec.rb +0 -616
  92. data/spec/resources/event_spec.rb +0 -210
  93. data/spec/resources/instalment_schedule_spec.rb +0 -636
  94. data/spec/resources/institution_spec.rb +0 -113
  95. data/spec/resources/mandate_import_entry_spec.rb +0 -206
  96. data/spec/resources/mandate_import_spec.rb +0 -344
  97. data/spec/resources/mandate_pdf_spec.rb +0 -117
  98. data/spec/resources/mandate_spec.rb +0 -600
  99. data/spec/resources/payer_authorisation_spec.rb +0 -422
  100. data/spec/resources/payment_spec.rb +0 -617
  101. data/spec/resources/payout_item_spec.rb +0 -101
  102. data/spec/resources/payout_spec.rb +0 -284
  103. data/spec/resources/redirect_flow_spec.rb +0 -347
  104. data/spec/resources/refund_spec.rb +0 -409
  105. data/spec/resources/scenario_simulator_spec.rb +0 -65
  106. data/spec/resources/scheme_identifier_spec.rb +0 -484
  107. data/spec/resources/subscription_spec.rb +0 -828
  108. data/spec/resources/tax_rate_spec.rb +0 -198
  109. data/spec/resources/verification_detail_spec.rb +0 -145
  110. data/spec/resources/webhook_spec.rb +0 -325
  111. data/spec/response_spec.rb +0 -34
  112. data/spec/services/bank_authorisations_service_spec.rb +0 -353
  113. data/spec/services/bank_details_lookups_service_spec.rb +0 -144
  114. data/spec/services/billing_request_flows_service_spec.rb +0 -291
  115. data/spec/services/billing_request_templates_service_spec.rb +0 -806
  116. data/spec/services/billing_requests_service_spec.rb +0 -1288
  117. data/spec/services/blocks_service_spec.rb +0 -840
  118. data/spec/services/creditor_bank_accounts_service_spec.rb +0 -725
  119. data/spec/services/creditors_service_spec.rb +0 -977
  120. data/spec/services/currency_exchange_rates_service_spec.rb +0 -223
  121. data/spec/services/customer_bank_accounts_service_spec.rb +0 -787
  122. data/spec/services/customer_notifications_service_spec.rb +0 -86
  123. data/spec/services/customers_service_spec.rb +0 -922
  124. data/spec/services/events_service_spec.rb +0 -401
  125. data/spec/services/instalment_schedules_service_spec.rb +0 -945
  126. data/spec/services/institutions_service_spec.rb +0 -241
  127. data/spec/services/mandate_import_entries_service_spec.rb +0 -345
  128. data/spec/services/mandate_imports_service_spec.rb +0 -460
  129. data/spec/services/mandate_pdfs_service_spec.rb +0 -140
  130. data/spec/services/mandates_service_spec.rb +0 -893
  131. data/spec/services/payer_authorisations_service_spec.rb +0 -563
  132. data/spec/services/payments_service_spec.rb +0 -914
  133. data/spec/services/payout_items_service_spec.rb +0 -221
  134. data/spec/services/payouts_service_spec.rb +0 -520
  135. data/spec/services/redirect_flows_service_spec.rb +0 -452
  136. data/spec/services/refunds_service_spec.rb +0 -668
  137. data/spec/services/scenario_simulators_service_spec.rb +0 -76
  138. data/spec/services/scheme_identifiers_service_spec.rb +0 -754
  139. data/spec/services/subscriptions_service_spec.rb +0 -1164
  140. data/spec/services/tax_rates_service_spec.rb +0 -381
  141. data/spec/services/verification_details_service_spec.rb +0 -168
  142. data/spec/services/webhooks_service_spec.rb +0 -547
  143. data/spec/spec_helper.rb +0 -90
  144. data/spec/webhook_spec.rb +0 -122
@@ -1,101 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe GoCardlessPro::Resources::PayoutItem do
4
- let(:client) do
5
- GoCardlessPro::Client.new(
6
- access_token: 'SECRET_TOKEN'
7
- )
8
- end
9
-
10
- let(:response_headers) { { 'Content-Type' => 'application/json' } }
11
-
12
- describe '#list' do
13
- describe 'with no filters' do
14
- subject(:get_list_response) { client.payout_items.list }
15
-
16
- before do
17
- stub_request(:get, %r{.*api.gocardless.com/payout_items}).to_return(
18
- body: {
19
- 'payout_items' => [{
20
-
21
- 'amount' => 'amount-input',
22
- 'links' => 'links-input',
23
- 'taxes' => 'taxes-input',
24
- 'type' => 'type-input',
25
- }],
26
- meta: {
27
- cursors: {
28
- before: nil,
29
- after: 'ABC123',
30
- },
31
- },
32
- }.to_json,
33
- headers: response_headers
34
- )
35
- end
36
-
37
- it 'wraps each item in the resource class' do
38
- expect(get_list_response.records.map(&:class).uniq.first).to eq(GoCardlessPro::Resources::PayoutItem)
39
-
40
- expect(get_list_response.records.first.amount).to eq('amount-input')
41
-
42
- expect(get_list_response.records.first.taxes).to eq('taxes-input')
43
-
44
- expect(get_list_response.records.first.type).to eq('type-input')
45
- end
46
-
47
- it 'exposes the cursors for before and after' do
48
- expect(get_list_response.before).to eq(nil)
49
- expect(get_list_response.after).to eq('ABC123')
50
- end
51
-
52
- specify { expect(get_list_response.api_response.headers).to eql('content-type' => 'application/json') }
53
- end
54
- end
55
-
56
- describe '#all' do
57
- let!(:first_response_stub) do
58
- stub_request(:get, %r{.*api.gocardless.com/payout_items$}).to_return(
59
- body: {
60
- 'payout_items' => [{
61
-
62
- 'amount' => 'amount-input',
63
- 'links' => 'links-input',
64
- 'taxes' => 'taxes-input',
65
- 'type' => 'type-input',
66
- }],
67
- meta: {
68
- cursors: { after: 'AB345' },
69
- limit: 1,
70
- },
71
- }.to_json,
72
- headers: response_headers
73
- )
74
- end
75
-
76
- let!(:second_response_stub) do
77
- stub_request(:get, %r{.*api.gocardless.com/payout_items\?after=AB345}).to_return(
78
- body: {
79
- 'payout_items' => [{
80
-
81
- 'amount' => 'amount-input',
82
- 'links' => 'links-input',
83
- 'taxes' => 'taxes-input',
84
- 'type' => 'type-input',
85
- }],
86
- meta: {
87
- limit: 2,
88
- cursors: {},
89
- },
90
- }.to_json,
91
- headers: response_headers
92
- )
93
- end
94
-
95
- it 'automatically makes the extra requests' do
96
- expect(client.payout_items.all.to_a.length).to eq(2)
97
- expect(first_response_stub).to have_been_requested
98
- expect(second_response_stub).to have_been_requested
99
- end
100
- end
101
- end
@@ -1,284 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe GoCardlessPro::Resources::Payout do
4
- let(:client) do
5
- GoCardlessPro::Client.new(
6
- access_token: 'SECRET_TOKEN'
7
- )
8
- end
9
-
10
- let(:response_headers) { { 'Content-Type' => 'application/json' } }
11
-
12
- describe '#list' do
13
- describe 'with no filters' do
14
- subject(:get_list_response) { client.payouts.list }
15
-
16
- before do
17
- stub_request(:get, %r{.*api.gocardless.com/payouts}).to_return(
18
- body: {
19
- 'payouts' => [{
20
-
21
- 'amount' => 'amount-input',
22
- 'arrival_date' => 'arrival_date-input',
23
- 'created_at' => 'created_at-input',
24
- 'currency' => 'currency-input',
25
- 'deducted_fees' => 'deducted_fees-input',
26
- 'fx' => 'fx-input',
27
- 'id' => 'id-input',
28
- 'links' => 'links-input',
29
- 'metadata' => 'metadata-input',
30
- 'payout_type' => 'payout_type-input',
31
- 'reference' => 'reference-input',
32
- 'status' => 'status-input',
33
- 'tax_currency' => 'tax_currency-input',
34
- }],
35
- meta: {
36
- cursors: {
37
- before: nil,
38
- after: 'ABC123',
39
- },
40
- },
41
- }.to_json,
42
- headers: response_headers
43
- )
44
- end
45
-
46
- it 'wraps each item in the resource class' do
47
- expect(get_list_response.records.map(&:class).uniq.first).to eq(GoCardlessPro::Resources::Payout)
48
-
49
- expect(get_list_response.records.first.amount).to eq('amount-input')
50
-
51
- expect(get_list_response.records.first.arrival_date).to eq('arrival_date-input')
52
-
53
- expect(get_list_response.records.first.created_at).to eq('created_at-input')
54
-
55
- expect(get_list_response.records.first.currency).to eq('currency-input')
56
-
57
- expect(get_list_response.records.first.deducted_fees).to eq('deducted_fees-input')
58
-
59
- expect(get_list_response.records.first.fx).to eq('fx-input')
60
-
61
- expect(get_list_response.records.first.id).to eq('id-input')
62
-
63
- expect(get_list_response.records.first.metadata).to eq('metadata-input')
64
-
65
- expect(get_list_response.records.first.payout_type).to eq('payout_type-input')
66
-
67
- expect(get_list_response.records.first.reference).to eq('reference-input')
68
-
69
- expect(get_list_response.records.first.status).to eq('status-input')
70
-
71
- expect(get_list_response.records.first.tax_currency).to eq('tax_currency-input')
72
- end
73
-
74
- it 'exposes the cursors for before and after' do
75
- expect(get_list_response.before).to eq(nil)
76
- expect(get_list_response.after).to eq('ABC123')
77
- end
78
-
79
- specify { expect(get_list_response.api_response.headers).to eql('content-type' => 'application/json') }
80
- end
81
- end
82
-
83
- describe '#all' do
84
- let!(:first_response_stub) do
85
- stub_request(:get, %r{.*api.gocardless.com/payouts$}).to_return(
86
- body: {
87
- 'payouts' => [{
88
-
89
- 'amount' => 'amount-input',
90
- 'arrival_date' => 'arrival_date-input',
91
- 'created_at' => 'created_at-input',
92
- 'currency' => 'currency-input',
93
- 'deducted_fees' => 'deducted_fees-input',
94
- 'fx' => 'fx-input',
95
- 'id' => 'id-input',
96
- 'links' => 'links-input',
97
- 'metadata' => 'metadata-input',
98
- 'payout_type' => 'payout_type-input',
99
- 'reference' => 'reference-input',
100
- 'status' => 'status-input',
101
- 'tax_currency' => 'tax_currency-input',
102
- }],
103
- meta: {
104
- cursors: { after: 'AB345' },
105
- limit: 1,
106
- },
107
- }.to_json,
108
- headers: response_headers
109
- )
110
- end
111
-
112
- let!(:second_response_stub) do
113
- stub_request(:get, %r{.*api.gocardless.com/payouts\?after=AB345}).to_return(
114
- body: {
115
- 'payouts' => [{
116
-
117
- 'amount' => 'amount-input',
118
- 'arrival_date' => 'arrival_date-input',
119
- 'created_at' => 'created_at-input',
120
- 'currency' => 'currency-input',
121
- 'deducted_fees' => 'deducted_fees-input',
122
- 'fx' => 'fx-input',
123
- 'id' => 'id-input',
124
- 'links' => 'links-input',
125
- 'metadata' => 'metadata-input',
126
- 'payout_type' => 'payout_type-input',
127
- 'reference' => 'reference-input',
128
- 'status' => 'status-input',
129
- 'tax_currency' => 'tax_currency-input',
130
- }],
131
- meta: {
132
- limit: 2,
133
- cursors: {},
134
- },
135
- }.to_json,
136
- headers: response_headers
137
- )
138
- end
139
-
140
- it 'automatically makes the extra requests' do
141
- expect(client.payouts.all.to_a.length).to eq(2)
142
- expect(first_response_stub).to have_been_requested
143
- expect(second_response_stub).to have_been_requested
144
- end
145
- end
146
-
147
- describe '#get' do
148
- let(:id) { 'ID123' }
149
-
150
- subject(:get_response) { client.payouts.get(id) }
151
-
152
- context 'passing in a custom header' do
153
- let!(:stub) do
154
- stub_url = '/payouts/:identity'.gsub(':identity', id)
155
- stub_request(:get, /.*api.gocardless.com#{stub_url}/).
156
- with(headers: { 'Foo' => 'Bar' }).
157
- to_return(
158
- body: {
159
- 'payouts' => {
160
-
161
- 'amount' => 'amount-input',
162
- 'arrival_date' => 'arrival_date-input',
163
- 'created_at' => 'created_at-input',
164
- 'currency' => 'currency-input',
165
- 'deducted_fees' => 'deducted_fees-input',
166
- 'fx' => 'fx-input',
167
- 'id' => 'id-input',
168
- 'links' => 'links-input',
169
- 'metadata' => 'metadata-input',
170
- 'payout_type' => 'payout_type-input',
171
- 'reference' => 'reference-input',
172
- 'status' => 'status-input',
173
- 'tax_currency' => 'tax_currency-input',
174
- },
175
- }.to_json,
176
- headers: response_headers
177
- )
178
- end
179
-
180
- subject(:get_response) do
181
- client.payouts.get(id, headers: {
182
- 'Foo' => 'Bar',
183
- })
184
- end
185
-
186
- it 'includes the header' do
187
- get_response
188
- expect(stub).to have_been_requested
189
- end
190
- end
191
-
192
- context 'when there is a payout to return' do
193
- before do
194
- stub_url = '/payouts/:identity'.gsub(':identity', id)
195
- stub_request(:get, /.*api.gocardless.com#{stub_url}/).to_return(
196
- body: {
197
- 'payouts' => {
198
-
199
- 'amount' => 'amount-input',
200
- 'arrival_date' => 'arrival_date-input',
201
- 'created_at' => 'created_at-input',
202
- 'currency' => 'currency-input',
203
- 'deducted_fees' => 'deducted_fees-input',
204
- 'fx' => 'fx-input',
205
- 'id' => 'id-input',
206
- 'links' => 'links-input',
207
- 'metadata' => 'metadata-input',
208
- 'payout_type' => 'payout_type-input',
209
- 'reference' => 'reference-input',
210
- 'status' => 'status-input',
211
- 'tax_currency' => 'tax_currency-input',
212
- },
213
- }.to_json,
214
- headers: response_headers
215
- )
216
- end
217
-
218
- it 'wraps the response in a resource' do
219
- expect(get_response).to be_a(GoCardlessPro::Resources::Payout)
220
- end
221
- end
222
-
223
- context 'when nothing is returned' do
224
- before do
225
- stub_url = '/payouts/:identity'.gsub(':identity', id)
226
- stub_request(:get, /.*api.gocardless.com#{stub_url}/).to_return(
227
- body: '',
228
- headers: response_headers
229
- )
230
- end
231
-
232
- it 'returns nil' do
233
- expect(get_response).to be_nil
234
- end
235
- end
236
-
237
- context "when an ID is specified which can't be included in a valid URI" do
238
- let(:id) { '`' }
239
-
240
- it "doesn't raise an error" do
241
- expect { get_response }.to_not raise_error(/bad URI/)
242
- end
243
- end
244
- end
245
-
246
- describe '#update' do
247
- subject(:put_update_response) { client.payouts.update(id, params: update_params) }
248
- let(:id) { 'ABC123' }
249
-
250
- context 'with a valid request' do
251
- let(:update_params) { { 'hello' => 'world' } }
252
-
253
- let!(:stub) do
254
- stub_url = '/payouts/:identity'.gsub(':identity', id)
255
- stub_request(:put, /.*api.gocardless.com#{stub_url}/).to_return(
256
- body: {
257
- 'payouts' => {
258
-
259
- 'amount' => 'amount-input',
260
- 'arrival_date' => 'arrival_date-input',
261
- 'created_at' => 'created_at-input',
262
- 'currency' => 'currency-input',
263
- 'deducted_fees' => 'deducted_fees-input',
264
- 'fx' => 'fx-input',
265
- 'id' => 'id-input',
266
- 'links' => 'links-input',
267
- 'metadata' => 'metadata-input',
268
- 'payout_type' => 'payout_type-input',
269
- 'reference' => 'reference-input',
270
- 'status' => 'status-input',
271
- 'tax_currency' => 'tax_currency-input',
272
- },
273
- }.to_json,
274
- headers: response_headers
275
- )
276
- end
277
-
278
- it 'updates and returns the resource' do
279
- expect(put_update_response).to be_a(GoCardlessPro::Resources::Payout)
280
- expect(stub).to have_been_requested
281
- end
282
- end
283
- end
284
- end