gocardless_pro 2.12.0 → 2.13.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +50 -0
  3. data/README.md +15 -1
  4. data/gocardless_pro.gemspec +2 -0
  5. data/lib/gocardless_pro.rb +3 -0
  6. data/lib/gocardless_pro/api_service.rb +3 -0
  7. data/lib/gocardless_pro/client.rb +6 -1
  8. data/lib/gocardless_pro/error/invalid_state_error.rb +2 -0
  9. data/lib/gocardless_pro/resources/creditor.rb +4 -0
  10. data/lib/gocardless_pro/resources/customer.rb +5 -0
  11. data/lib/gocardless_pro/resources/customer_notification.rb +97 -0
  12. data/lib/gocardless_pro/resources/event.rb +2 -0
  13. data/lib/gocardless_pro/resources/mandate_import.rb +1 -1
  14. data/lib/gocardless_pro/resources/mandate_import_entry.rb +1 -1
  15. data/lib/gocardless_pro/services/creditor_bank_accounts_service.rb +20 -2
  16. data/lib/gocardless_pro/services/creditors_service.rb +10 -1
  17. data/lib/gocardless_pro/services/customer_bank_accounts_service.rb +20 -2
  18. data/lib/gocardless_pro/services/customer_notifications_service.rb +66 -0
  19. data/lib/gocardless_pro/services/customers_service.rb +10 -1
  20. data/lib/gocardless_pro/services/mandate_imports_service.rb +40 -6
  21. data/lib/gocardless_pro/services/mandates_service.rb +30 -3
  22. data/lib/gocardless_pro/services/payments_service.rb +30 -3
  23. data/lib/gocardless_pro/services/redirect_flows_service.rb +20 -2
  24. data/lib/gocardless_pro/services/refunds_service.rb +11 -6
  25. data/lib/gocardless_pro/services/subscriptions_service.rb +20 -2
  26. data/lib/gocardless_pro/version.rb +1 -1
  27. data/spec/resources/customer_notification_spec.rb +73 -0
  28. data/spec/resources/customer_spec.rb +13 -0
  29. data/spec/resources/event_spec.rb +7 -0
  30. data/spec/services/creditor_bank_accounts_service_spec.rb +33 -4
  31. data/spec/services/creditors_service_spec.rb +33 -4
  32. data/spec/services/customer_bank_accounts_service_spec.rb +33 -4
  33. data/spec/services/customer_notifications_service_spec.rb +84 -0
  34. data/spec/services/customers_service_spec.rb +50 -4
  35. data/spec/services/events_service_spec.rb +11 -0
  36. data/spec/services/mandate_imports_service_spec.rb +33 -4
  37. data/spec/services/mandates_service_spec.rb +33 -4
  38. data/spec/services/payments_service_spec.rb +33 -4
  39. data/spec/services/redirect_flows_service_spec.rb +33 -4
  40. data/spec/services/refunds_service_spec.rb +33 -4
  41. data/spec/services/subscriptions_service_spec.rb +33 -4
  42. metadata +23 -3
  43. data/circle.yml +0 -11
@@ -156,10 +156,39 @@ describe GoCardlessPro::Services::MandateImportsService do
156
156
  )
157
157
  end
158
158
 
159
- it 'fetches the already-created resource' do
160
- post_create_response
161
- expect(post_stub).to have_been_requested
162
- expect(get_stub).to have_been_requested
159
+ context 'with default behaviour' do
160
+ it 'fetches the already-created resource' do
161
+ post_create_response
162
+ expect(post_stub).to have_been_requested
163
+ expect(get_stub).to have_been_requested
164
+ end
165
+ end
166
+
167
+ context 'with on_idempotency_conflict: :raise' do
168
+ let(:client) do
169
+ GoCardlessPro::Client.new(
170
+ access_token: 'SECRET_TOKEN',
171
+ on_idempotency_conflict: :raise
172
+ )
173
+ end
174
+
175
+ it 'raises an IdempotencyConflict error' do
176
+ expect { post_create_response }.
177
+ to raise_error(GoCardlessPro::IdempotencyConflict)
178
+ end
179
+ end
180
+
181
+ context 'with on_idempotency_conflict: :unknown' do
182
+ let(:client) do
183
+ GoCardlessPro::Client.new(
184
+ access_token: 'SECRET_TOKEN',
185
+ on_idempotency_conflict: :unknown
186
+ )
187
+ end
188
+
189
+ it 'raises an ArgumentError' do
190
+ expect { post_create_response }.to raise_error(ArgumentError)
191
+ end
163
192
  end
164
193
  end
165
194
  end
@@ -181,10 +181,39 @@ describe GoCardlessPro::Services::MandatesService do
181
181
  )
182
182
  end
183
183
 
184
- it 'fetches the already-created resource' do
185
- post_create_response
186
- expect(post_stub).to have_been_requested
187
- expect(get_stub).to have_been_requested
184
+ context 'with default behaviour' do
185
+ it 'fetches the already-created resource' do
186
+ post_create_response
187
+ expect(post_stub).to have_been_requested
188
+ expect(get_stub).to have_been_requested
189
+ end
190
+ end
191
+
192
+ context 'with on_idempotency_conflict: :raise' do
193
+ let(:client) do
194
+ GoCardlessPro::Client.new(
195
+ access_token: 'SECRET_TOKEN',
196
+ on_idempotency_conflict: :raise
197
+ )
198
+ end
199
+
200
+ it 'raises an IdempotencyConflict error' do
201
+ expect { post_create_response }.
202
+ to raise_error(GoCardlessPro::IdempotencyConflict)
203
+ end
204
+ end
205
+
206
+ context 'with on_idempotency_conflict: :unknown' do
207
+ let(:client) do
208
+ GoCardlessPro::Client.new(
209
+ access_token: 'SECRET_TOKEN',
210
+ on_idempotency_conflict: :unknown
211
+ )
212
+ end
213
+
214
+ it 'raises an ArgumentError' do
215
+ expect { post_create_response }.to raise_error(ArgumentError)
216
+ end
188
217
  end
189
218
  end
190
219
  end
@@ -191,10 +191,39 @@ describe GoCardlessPro::Services::PaymentsService do
191
191
  )
192
192
  end
193
193
 
194
- it 'fetches the already-created resource' do
195
- post_create_response
196
- expect(post_stub).to have_been_requested
197
- expect(get_stub).to have_been_requested
194
+ context 'with default behaviour' do
195
+ it 'fetches the already-created resource' do
196
+ post_create_response
197
+ expect(post_stub).to have_been_requested
198
+ expect(get_stub).to have_been_requested
199
+ end
200
+ end
201
+
202
+ context 'with on_idempotency_conflict: :raise' do
203
+ let(:client) do
204
+ GoCardlessPro::Client.new(
205
+ access_token: 'SECRET_TOKEN',
206
+ on_idempotency_conflict: :raise
207
+ )
208
+ end
209
+
210
+ it 'raises an IdempotencyConflict error' do
211
+ expect { post_create_response }.
212
+ to raise_error(GoCardlessPro::IdempotencyConflict)
213
+ end
214
+ end
215
+
216
+ context 'with on_idempotency_conflict: :unknown' do
217
+ let(:client) do
218
+ GoCardlessPro::Client.new(
219
+ access_token: 'SECRET_TOKEN',
220
+ on_idempotency_conflict: :unknown
221
+ )
222
+ end
223
+
224
+ it 'raises an ArgumentError' do
225
+ expect { post_create_response }.to raise_error(ArgumentError)
226
+ end
198
227
  end
199
228
  end
200
229
  end
@@ -181,10 +181,39 @@ describe GoCardlessPro::Services::RedirectFlowsService do
181
181
  )
182
182
  end
183
183
 
184
- it 'fetches the already-created resource' do
185
- post_create_response
186
- expect(post_stub).to have_been_requested
187
- expect(get_stub).to have_been_requested
184
+ context 'with default behaviour' do
185
+ it 'fetches the already-created resource' do
186
+ post_create_response
187
+ expect(post_stub).to have_been_requested
188
+ expect(get_stub).to have_been_requested
189
+ end
190
+ end
191
+
192
+ context 'with on_idempotency_conflict: :raise' do
193
+ let(:client) do
194
+ GoCardlessPro::Client.new(
195
+ access_token: 'SECRET_TOKEN',
196
+ on_idempotency_conflict: :raise
197
+ )
198
+ end
199
+
200
+ it 'raises an IdempotencyConflict error' do
201
+ expect { post_create_response }.
202
+ to raise_error(GoCardlessPro::IdempotencyConflict)
203
+ end
204
+ end
205
+
206
+ context 'with on_idempotency_conflict: :unknown' do
207
+ let(:client) do
208
+ GoCardlessPro::Client.new(
209
+ access_token: 'SECRET_TOKEN',
210
+ on_idempotency_conflict: :unknown
211
+ )
212
+ end
213
+
214
+ it 'raises an ArgumentError' do
215
+ expect { post_create_response }.to raise_error(ArgumentError)
216
+ end
188
217
  end
189
218
  end
190
219
  end
@@ -171,10 +171,39 @@ describe GoCardlessPro::Services::RefundsService do
171
171
  )
172
172
  end
173
173
 
174
- it 'fetches the already-created resource' do
175
- post_create_response
176
- expect(post_stub).to have_been_requested
177
- expect(get_stub).to have_been_requested
174
+ context 'with default behaviour' do
175
+ it 'fetches the already-created resource' do
176
+ post_create_response
177
+ expect(post_stub).to have_been_requested
178
+ expect(get_stub).to have_been_requested
179
+ end
180
+ end
181
+
182
+ context 'with on_idempotency_conflict: :raise' do
183
+ let(:client) do
184
+ GoCardlessPro::Client.new(
185
+ access_token: 'SECRET_TOKEN',
186
+ on_idempotency_conflict: :raise
187
+ )
188
+ end
189
+
190
+ it 'raises an IdempotencyConflict error' do
191
+ expect { post_create_response }.
192
+ to raise_error(GoCardlessPro::IdempotencyConflict)
193
+ end
194
+ end
195
+
196
+ context 'with on_idempotency_conflict: :unknown' do
197
+ let(:client) do
198
+ GoCardlessPro::Client.new(
199
+ access_token: 'SECRET_TOKEN',
200
+ on_idempotency_conflict: :unknown
201
+ )
202
+ end
203
+
204
+ it 'raises an ArgumentError' do
205
+ expect { post_create_response }.to raise_error(ArgumentError)
206
+ end
178
207
  end
179
208
  end
180
209
  end
@@ -221,10 +221,39 @@ describe GoCardlessPro::Services::SubscriptionsService do
221
221
  )
222
222
  end
223
223
 
224
- it 'fetches the already-created resource' do
225
- post_create_response
226
- expect(post_stub).to have_been_requested
227
- expect(get_stub).to have_been_requested
224
+ context 'with default behaviour' do
225
+ it 'fetches the already-created resource' do
226
+ post_create_response
227
+ expect(post_stub).to have_been_requested
228
+ expect(get_stub).to have_been_requested
229
+ end
230
+ end
231
+
232
+ context 'with on_idempotency_conflict: :raise' do
233
+ let(:client) do
234
+ GoCardlessPro::Client.new(
235
+ access_token: 'SECRET_TOKEN',
236
+ on_idempotency_conflict: :raise
237
+ )
238
+ end
239
+
240
+ it 'raises an IdempotencyConflict error' do
241
+ expect { post_create_response }.
242
+ to raise_error(GoCardlessPro::IdempotencyConflict)
243
+ end
244
+ end
245
+
246
+ context 'with on_idempotency_conflict: :unknown' do
247
+ let(:client) do
248
+ GoCardlessPro::Client.new(
249
+ access_token: 'SECRET_TOKEN',
250
+ on_idempotency_conflict: :unknown
251
+ )
252
+ end
253
+
254
+ it 'raises an ArgumentError' do
255
+ expect { post_create_response }.to raise_error(ArgumentError)
256
+ end
228
257
  end
229
258
  end
230
259
  end
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: 2.12.0
4
+ version: 2.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GoCardless
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-12 00:00:00.000000000 Z
11
+ date: 2018-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.7.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: public_suffix
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.5
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.0.5
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: webmock
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -93,13 +107,13 @@ executables: []
93
107
  extensions: []
94
108
  extra_rdoc_files: []
95
109
  files:
110
+ - ".circleci/config.yml"
96
111
  - ".rspec"
97
112
  - ".rubocop.yml"
98
113
  - ".travis.yml"
99
114
  - Gemfile
100
115
  - LICENSE.txt
101
116
  - README.md
102
- - circle.yml
103
117
  - demo.rb
104
118
  - gocardless_pro.gemspec
105
119
  - lib/gocardless_pro.rb
@@ -121,6 +135,7 @@ files:
121
135
  - lib/gocardless_pro/resources/creditor_bank_account.rb
122
136
  - lib/gocardless_pro/resources/customer.rb
123
137
  - lib/gocardless_pro/resources/customer_bank_account.rb
138
+ - lib/gocardless_pro/resources/customer_notification.rb
124
139
  - lib/gocardless_pro/resources/event.rb
125
140
  - lib/gocardless_pro/resources/mandate.rb
126
141
  - lib/gocardless_pro/resources/mandate_import.rb
@@ -138,6 +153,7 @@ files:
138
153
  - lib/gocardless_pro/services/creditor_bank_accounts_service.rb
139
154
  - lib/gocardless_pro/services/creditors_service.rb
140
155
  - lib/gocardless_pro/services/customer_bank_accounts_service.rb
156
+ - lib/gocardless_pro/services/customer_notifications_service.rb
141
157
  - lib/gocardless_pro/services/customers_service.rb
142
158
  - lib/gocardless_pro/services/events_service.rb
143
159
  - lib/gocardless_pro/services/mandate_import_entries_service.rb
@@ -161,6 +177,7 @@ files:
161
177
  - spec/resources/creditor_bank_account_spec.rb
162
178
  - spec/resources/creditor_spec.rb
163
179
  - spec/resources/customer_bank_account_spec.rb
180
+ - spec/resources/customer_notification_spec.rb
164
181
  - spec/resources/customer_spec.rb
165
182
  - spec/resources/event_spec.rb
166
183
  - spec/resources/mandate_import_entry_spec.rb
@@ -178,6 +195,7 @@ files:
178
195
  - spec/services/creditor_bank_accounts_service_spec.rb
179
196
  - spec/services/creditors_service_spec.rb
180
197
  - spec/services/customer_bank_accounts_service_spec.rb
198
+ - spec/services/customer_notifications_service_spec.rb
181
199
  - spec/services/customers_service_spec.rb
182
200
  - spec/services/events_service_spec.rb
183
201
  - spec/services/mandate_import_entries_service_spec.rb
@@ -226,6 +244,7 @@ test_files:
226
244
  - spec/resources/creditor_bank_account_spec.rb
227
245
  - spec/resources/creditor_spec.rb
228
246
  - spec/resources/customer_bank_account_spec.rb
247
+ - spec/resources/customer_notification_spec.rb
229
248
  - spec/resources/customer_spec.rb
230
249
  - spec/resources/event_spec.rb
231
250
  - spec/resources/mandate_import_entry_spec.rb
@@ -243,6 +262,7 @@ test_files:
243
262
  - spec/services/creditor_bank_accounts_service_spec.rb
244
263
  - spec/services/creditors_service_spec.rb
245
264
  - spec/services/customer_bank_accounts_service_spec.rb
265
+ - spec/services/customer_notifications_service_spec.rb
246
266
  - spec/services/customers_service_spec.rb
247
267
  - spec/services/events_service_spec.rb
248
268
  - spec/services/mandate_import_entries_service_spec.rb
data/circle.yml DELETED
@@ -1,11 +0,0 @@
1
- dependencies:
2
- override:
3
- - 'rvm-exec 2.2.7 bundle install'
4
- - 'rvm-exec 2.3.4 bundle install'
5
- - 'rvm-exec 2.4.1 bundle install'
6
-
7
- test:
8
- override:
9
- - 'rvm-exec 2.2.7 bundle exec rspec'
10
- - 'rvm-exec 2.3.4 bundle exec rspec'
11
- - 'rvm-exec 2.4.1 bundle exec rspec'