gocardless_pro 2.41.0 → 2.41.2

Sign up to get free protection for your applications and to get access to all the features.
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/Gemfile +0 -10
  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
data/spec/webhook_spec.rb DELETED
@@ -1,122 +0,0 @@
1
- require 'spec_helper'
2
- require 'pathname'
3
-
4
- describe GoCardlessPro::Webhook do
5
- let(:options) do
6
- {
7
- request_body: request_body,
8
- signature_header: signature_header,
9
- webhook_endpoint_secret: webhook_endpoint_secret,
10
- }
11
- end
12
-
13
- let(:request_body) do
14
- '{"events":[{"id":"EV00BD05S5VM2T","created_at":"2018-07-05T09:13:51.404Z","resou' \
15
- 'rce_type":"subscriptions","action":"created","links":{"subscription":"SB0003JJQ2' \
16
- 'MR06"},"details":{"origin":"api","cause":"subscription_created","description":"S' \
17
- 'ubscription created via the API."},"metadata":{}},{"id":"EV00BD05TB8K63","create' \
18
- 'd_at":"2018-07-05T09:13:56.893Z","resource_type":"mandates","action":"created","' \
19
- 'links":{"mandate":"MD000AMA19XGEC"},"details":{"origin":"api","cause":"mandate_c' \
20
- 'reated","description":"Mandate created via the API."},"metadata":{}}]}'
21
- end
22
-
23
- let(:signature_header) do
24
- '2693754819d3e32d7e8fcb13c729631f316c6de8dc1cf634d6527f1c07276e7e'
25
- end
26
-
27
- let(:webhook_endpoint_secret) { 'ED7D658C-D8EB-4941-948B-3973214F2D49' }
28
-
29
- describe '.parse' do
30
- context 'when the signature in the header matches the computed signature' do
31
- it 'returns an array of `GoCardlessPro::Resources::Event`s' do
32
- events = described_class.parse(options)
33
-
34
- expect(events.length).to eq(2)
35
-
36
- expect(events.first.id).to eq('EV00BD05S5VM2T')
37
- expect(events.first.created_at).to eq('2018-07-05T09:13:51.404Z')
38
- expect(events.first.resource_type).to eq('subscriptions')
39
- expect(events.first.action).to eq('created')
40
- expect(events.first.links.subscription).to eq('SB0003JJQ2MR06')
41
- expect(events.first.details['origin']).to eq('api')
42
- expect(events.first.details['cause']).to eq('subscription_created')
43
- expect(events.first.details['description']).
44
- to eq('Subscription created via the API.')
45
- expect(events.first.metadata).to eq({})
46
-
47
- expect(events.last.id).to eq('EV00BD05TB8K63')
48
- expect(events.last.created_at).to eq('2018-07-05T09:13:56.893Z')
49
- expect(events.last.resource_type).to eq('mandates')
50
- expect(events.last.action).to eq('created')
51
- expect(events.last.links.mandate).to eq('MD000AMA19XGEC')
52
- expect(events.last.details['origin']).to eq('api')
53
- expect(events.last.details['cause']).to eq('mandate_created')
54
- expect(events.last.details['description']).
55
- to eq('Mandate created via the API.')
56
- expect(events.last.metadata).to eq({})
57
- end
58
- end
59
-
60
- context "when the signature in the header doesn't match the computed signature" do
61
- let(:webhook_endpoint_secret) { 'foo' }
62
-
63
- it 'raises an InvalidSignatureError' do
64
- expect { described_class.parse(options) }.
65
- to raise_error(described_class::InvalidSignatureError,
66
- /doesn't appear to be a genuine webhook from GoCardless/)
67
- end
68
- end
69
-
70
- context 'with a required argument missing' do
71
- before { options.delete(:request_body) }
72
-
73
- it 'raises an ArgumentError' do
74
- expect { described_class.signature_valid?(options) }.
75
- to raise_error(ArgumentError,
76
- 'request_body must be provided and must be a string')
77
- end
78
- end
79
-
80
- context 'with an argument of the wrong type' do
81
- let(:request_body) { StringIO.new }
82
-
83
- it 'raises an ArgumentError' do
84
- expect { described_class.signature_valid?(options) }.
85
- to raise_error(ArgumentError,
86
- 'request_body must be provided and must be a string')
87
- end
88
- end
89
- end
90
-
91
- describe '.signature_valid?' do
92
- context 'when the signature in the header matches the computed signature' do
93
- specify { expect(described_class.signature_valid?(options)).to be(true) }
94
- end
95
-
96
- context "when the signature in the header doesn't match the computed signature" do
97
- let(:webhook_endpoint_secret) { 'foo' }
98
-
99
- specify { expect(described_class.signature_valid?(options)).to be(false) }
100
- end
101
-
102
- context 'with a required argument missing' do
103
- before { options.delete(:request_body) }
104
-
105
- it 'raises an ArgumentError' do
106
- expect { described_class.signature_valid?(options) }.
107
- to raise_error(ArgumentError,
108
- 'request_body must be provided and must be a string')
109
- end
110
- end
111
-
112
- context 'with an argument of the wrong type' do
113
- let(:request_body) { StringIO.new }
114
-
115
- it 'raises an ArgumentError' do
116
- expect { described_class.signature_valid?(options) }.
117
- to raise_error(ArgumentError,
118
- 'request_body must be provided and must be a string')
119
- end
120
- end
121
- end
122
- end