currency_cloud 0.9.0 → 0.10.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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +31 -0
  3. data/.rubocop.yml +6 -0
  4. data/.travis.yml +2 -4
  5. data/Gemfile +0 -3
  6. data/LICENSE.md +16 -17
  7. data/README.md +5 -3
  8. data/Rakefile +12 -12
  9. data/currency_cloud.gemspec +9 -9
  10. data/examples/server.rb +7 -7
  11. data/lib/currency_cloud/client.rb +5 -1
  12. data/lib/currency_cloud/conversion.rb +15 -0
  13. data/lib/currency_cloud/conversion_cancel_result.rb +5 -0
  14. data/lib/currency_cloud/conversion_date_change_result.rb +5 -0
  15. data/lib/currency_cloud/conversion_split_result.rb +5 -0
  16. data/lib/currency_cloud/errors/api_error.rb +2 -2
  17. data/lib/currency_cloud/errors/error_utils.rb +4 -4
  18. data/lib/currency_cloud/errors/unexpected_error.rb +3 -3
  19. data/lib/currency_cloud/iban.rb +22 -0
  20. data/lib/currency_cloud/ibans.rb +6 -0
  21. data/lib/currency_cloud/payer_required_details.rb +5 -0
  22. data/lib/currency_cloud/payment.rb +10 -0
  23. data/lib/currency_cloud/payment_authorisation_result.rb +5 -0
  24. data/lib/currency_cloud/payment_dates.rb +5 -0
  25. data/lib/currency_cloud/payment_submission.rb +5 -0
  26. data/lib/currency_cloud/purpose_code.rb +5 -0
  27. data/lib/currency_cloud/reference.rb +20 -5
  28. data/lib/currency_cloud/request_handler.rb +1 -3
  29. data/lib/currency_cloud/response_handler.rb +7 -7
  30. data/lib/currency_cloud/session.rb +2 -3
  31. data/lib/currency_cloud/transfer.rb +8 -0
  32. data/lib/currency_cloud/version.rb +1 -1
  33. data/lib/currency_cloud/virtual_account.rb +22 -0
  34. data/lib/currency_cloud/virtual_accounts.rb +6 -0
  35. data/spec/currency_cloud_spec.rb +9 -9
  36. data/spec/integration/authentication_spec.rb +2 -2
  37. data/spec/integration/conversions_spec.rb +94 -0
  38. data/spec/integration/error_utils_spec.rb +12 -12
  39. data/spec/integration/errors_spec.rb +84 -102
  40. data/spec/integration/ibans_spec.rb +42 -0
  41. data/spec/integration/payment_spec.rb +31 -0
  42. data/spec/integration/payments_spec.rb +67 -0
  43. data/spec/integration/reference_spec.rb +37 -14
  44. data/spec/integration/transfers_spec.rb +39 -0
  45. data/spec/integration/virtual_accounts_spec.rb +37 -0
  46. data/spec/spec_helper.rb +9 -1
  47. data/spec/support/vcr_cassettes/Authentication/can_be_closed.yml +1 -1
  48. data/spec/support/vcr_cassettes/Authentication/handles_session_timeout_error.yml +1 -1
  49. data/spec/support/vcr_cassettes/Authentication/happens_lazily.yml +1 -1
  50. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/with_notes/has_a_non-empty_notes_attribute.yml +158 -0
  51. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/without_notes/has_a_empty_notes_attribute.yml +157 -0
  52. data/spec/support/vcr_cassettes/Conversions/can_date_change_conversion.yml +157 -0
  53. data/spec/support/vcr_cassettes/Conversions/can_split_conversion.yml +157 -0
  54. data/spec/support/vcr_cassettes/Error/contains_full_details_for_api_error.yml +1 -1
  55. data/spec/support/vcr_cassettes/Error/is_raised_on_a_bad_request.yml +1 -1
  56. data/spec/support/vcr_cassettes/Error/is_raised_on_a_forbidden_request.yml +1 -1
  57. data/spec/support/vcr_cassettes/Error/is_raised_on_an_internal_server_error.yml +1 -1
  58. data/spec/support/vcr_cassettes/Error/is_raised_on_incorrect_authentication_details.yml +1 -1
  59. data/spec/support/vcr_cassettes/Error/is_raised_when_too_many_requests_have_been_issued.yml +1 -1
  60. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml +109 -0
  61. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml +108 -0
  62. data/spec/support/vcr_cassettes/IBANs/can_find.yml +114 -0
  63. data/spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml +263 -0
  64. data/spec/support/vcr_cassettes/Payments/can_create.yml +155 -0
  65. data/spec/support/vcr_cassettes/Payments/can_get_the_submission.yml +205 -0
  66. data/spec/support/vcr_cassettes/Reference/can_retrieve_beneficiary_required_details.yml +77 -12
  67. data/spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml +183 -22
  68. data/spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml +110 -22
  69. data/spec/support/vcr_cassettes/Reference/can_retrieve_payer_required_details.yml +103 -0
  70. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_dates.yml +110 -0
  71. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_purpose_codes.yml +128 -0
  72. data/spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml +76 -11
  73. data/spec/support/vcr_cassettes/Settlements/can_add_conversion.yml +56 -6
  74. data/spec/support/vcr_cassettes/Settlements/can_release.yml +55 -5
  75. data/spec/support/vcr_cassettes/Settlements/can_remove_conversion.yml +55 -5
  76. data/spec/support/vcr_cassettes/Settlements/can_unrelease.yml +55 -5
  77. data/spec/support/vcr_cassettes/Transfers/can_create.yml +101 -0
  78. data/spec/support/vcr_cassettes/Transfers/can_find.yml +151 -0
  79. data/spec/support/vcr_cassettes/Transfers/can_retrieve.yml +151 -0
  80. data/spec/support/vcr_cassettes/VirtualAccounts/can_find.yml +108 -0
  81. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml +108 -0
  82. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml +108 -0
  83. metadata +82 -20
  84. data/Guardfile +0 -14
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: currency_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Liam McAndrew
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-11-29 00:00:00.000000000 Z
12
+ date: 2018-09-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  requirement: !ruby/object:Gem::Requirement
@@ -42,17 +42,17 @@ dependencies:
42
42
  - !ruby/object:Gem::Dependency
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - "<="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.1'
48
- name: rspec
47
+ version: 2.4.0
48
+ name: addressable
49
49
  prerelease: false
50
50
  type: :development
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - "<="
54
54
  - !ruby/object:Gem::Version
55
- version: '3.1'
55
+ version: 2.4.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
@@ -72,21 +72,21 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.21'
76
- name: webmock
75
+ version: '3.1'
76
+ name: rspec
77
77
  prerelease: false
78
78
  type: :development
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '1.21'
83
+ version: '3.1'
84
84
  - !ruby/object:Gem::Dependency
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '2.9'
89
+ version: 3.0.3
90
90
  name: vcr
91
91
  prerelease: false
92
92
  type: :development
@@ -94,22 +94,22 @@ dependencies:
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '2.9'
97
+ version: 3.0.3
98
98
  - !ruby/object:Gem::Dependency
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "<="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 2.4.0
104
- name: addressable
103
+ version: 2.3.2
104
+ name: webmock
105
105
  prerelease: false
106
106
  type: :development
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - "<="
109
+ - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: 2.4.0
112
- description: Ruby SDK for the Currency Cloud API - https://connect.currencycloud.com/
111
+ version: 2.3.2
112
+ description: Ruby SDK for the Currency Cloud API - https://www.currencycloud.com/developers/overview/
113
113
  email:
114
114
  - liam.mcandrew@currencycloud.com
115
115
  - richard.nienaber@currencycloud.com
@@ -121,7 +121,6 @@ files:
121
121
  - ".rubocop.yml"
122
122
  - ".travis.yml"
123
123
  - Gemfile
124
- - Guardfile
125
124
  - LICENSE.md
126
125
  - README.md
127
126
  - Rakefile
@@ -143,15 +142,25 @@ files:
143
142
  - lib/currency_cloud/client.rb
144
143
  - lib/currency_cloud/contact.rb
145
144
  - lib/currency_cloud/conversion.rb
145
+ - lib/currency_cloud/conversion_cancel_result.rb
146
+ - lib/currency_cloud/conversion_date_change_result.rb
146
147
  - lib/currency_cloud/conversion_dates.rb
148
+ - lib/currency_cloud/conversion_split_result.rb
147
149
  - lib/currency_cloud/currency.rb
148
150
  - lib/currency_cloud/errors/api_error.rb
149
151
  - lib/currency_cloud/errors/error_utils.rb
150
152
  - lib/currency_cloud/errors/general_error.rb
151
153
  - lib/currency_cloud/errors/unexpected_error.rb
154
+ - lib/currency_cloud/iban.rb
155
+ - lib/currency_cloud/ibans.rb
152
156
  - lib/currency_cloud/pagination.rb
153
157
  - lib/currency_cloud/payer.rb
158
+ - lib/currency_cloud/payer_required_details.rb
154
159
  - lib/currency_cloud/payment.rb
160
+ - lib/currency_cloud/payment_authorisation_result.rb
161
+ - lib/currency_cloud/payment_dates.rb
162
+ - lib/currency_cloud/payment_submission.rb
163
+ - lib/currency_cloud/purpose_code.rb
155
164
  - lib/currency_cloud/rate.rb
156
165
  - lib/currency_cloud/rates.rb
157
166
  - lib/currency_cloud/reference.rb
@@ -163,17 +172,26 @@ files:
163
172
  - lib/currency_cloud/settlement.rb
164
173
  - lib/currency_cloud/settlement_account.rb
165
174
  - lib/currency_cloud/transaction.rb
175
+ - lib/currency_cloud/transfer.rb
166
176
  - lib/currency_cloud/version.rb
177
+ - lib/currency_cloud/virtual_account.rb
178
+ - lib/currency_cloud/virtual_accounts.rb
167
179
  - spec/currency_cloud/request_handler_spec.rb
168
180
  - spec/currency_cloud/resource_spec.rb
169
181
  - spec/currency_cloud_spec.rb
170
182
  - spec/integration/actions_spec.rb
171
183
  - spec/integration/authentication_spec.rb
184
+ - spec/integration/conversions_spec.rb
172
185
  - spec/integration/error_utils_spec.rb
173
186
  - spec/integration/errors_spec.rb
187
+ - spec/integration/ibans_spec.rb
188
+ - spec/integration/payment_spec.rb
189
+ - spec/integration/payments_spec.rb
174
190
  - spec/integration/rates_spec.rb
175
191
  - spec/integration/reference_spec.rb
176
192
  - spec/integration/settlements_spec.rb
193
+ - spec/integration/transfers_spec.rb
194
+ - spec/integration/virtual_accounts_spec.rb
177
195
  - spec/spec_helper.rb
178
196
  - spec/support/vcr_cassettes/Actions/can_create.yml
179
197
  - spec/support/vcr_cassettes/Actions/can_current.yml
@@ -188,6 +206,10 @@ files:
188
206
  - spec/support/vcr_cassettes/Authentication/can_use_just_a_token.yml
189
207
  - spec/support/vcr_cassettes/Authentication/handles_session_timeout_error.yml
190
208
  - spec/support/vcr_cassettes/Authentication/happens_lazily.yml
209
+ - spec/support/vcr_cassettes/Conversions/can_cancel_conversion/with_notes/has_a_non-empty_notes_attribute.yml
210
+ - spec/support/vcr_cassettes/Conversions/can_cancel_conversion/without_notes/has_a_empty_notes_attribute.yml
211
+ - spec/support/vcr_cassettes/Conversions/can_date_change_conversion.yml
212
+ - spec/support/vcr_cassettes/Conversions/can_split_conversion.yml
191
213
  - spec/support/vcr_cassettes/Error/contains_full_details_for_api_error.yml
192
214
  - spec/support/vcr_cassettes/Error/is_raised_on_a_bad_request.yml
193
215
  - spec/support/vcr_cassettes/Error/is_raised_on_a_forbidden_request.yml
@@ -195,17 +217,32 @@ files:
195
217
  - spec/support/vcr_cassettes/Error/is_raised_on_incorrect_authentication_details.yml
196
218
  - spec/support/vcr_cassettes/Error/is_raised_when_a_resource_is_not_found.yml
197
219
  - spec/support/vcr_cassettes/Error/is_raised_when_too_many_requests_have_been_issued.yml
220
+ - spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml
221
+ - spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml
222
+ - spec/support/vcr_cassettes/IBANs/can_find.yml
223
+ - spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml
224
+ - spec/support/vcr_cassettes/Payments/can_create.yml
225
+ - spec/support/vcr_cassettes/Payments/can_get_the_submission.yml
198
226
  - spec/support/vcr_cassettes/Rates/can_find.yml
199
227
  - spec/support/vcr_cassettes/Rates/can_provided_detailed_rate.yml
200
228
  - spec/support/vcr_cassettes/Reference/can_retrieve_beneficiary_required_details.yml
201
229
  - spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml
202
230
  - spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml
231
+ - spec/support/vcr_cassettes/Reference/can_retrieve_payer_required_details.yml
232
+ - spec/support/vcr_cassettes/Reference/can_retrieve_payment_dates.yml
233
+ - spec/support/vcr_cassettes/Reference/can_retrieve_payment_purpose_codes.yml
203
234
  - spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml
204
235
  - spec/support/vcr_cassettes/Settlements/can_add_conversion.yml
205
236
  - spec/support/vcr_cassettes/Settlements/can_release.yml
206
237
  - spec/support/vcr_cassettes/Settlements/can_remove_conversion.yml
207
238
  - spec/support/vcr_cassettes/Settlements/can_unrelease.yml
208
- homepage: https://connect.currencycloud.com/documentation/getting-started/introduction
239
+ - spec/support/vcr_cassettes/Transfers/can_create.yml
240
+ - spec/support/vcr_cassettes/Transfers/can_find.yml
241
+ - spec/support/vcr_cassettes/Transfers/can_retrieve.yml
242
+ - spec/support/vcr_cassettes/VirtualAccounts/can_find.yml
243
+ - spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml
244
+ - spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml
245
+ homepage: https://github.com/Currencycloud/currencycloud-ruby/
209
246
  licenses:
210
247
  - MIT
211
248
  metadata: {}
@@ -235,11 +272,17 @@ test_files:
235
272
  - spec/currency_cloud_spec.rb
236
273
  - spec/integration/actions_spec.rb
237
274
  - spec/integration/authentication_spec.rb
275
+ - spec/integration/conversions_spec.rb
238
276
  - spec/integration/error_utils_spec.rb
239
277
  - spec/integration/errors_spec.rb
278
+ - spec/integration/ibans_spec.rb
279
+ - spec/integration/payment_spec.rb
280
+ - spec/integration/payments_spec.rb
240
281
  - spec/integration/rates_spec.rb
241
282
  - spec/integration/reference_spec.rb
242
283
  - spec/integration/settlements_spec.rb
284
+ - spec/integration/transfers_spec.rb
285
+ - spec/integration/virtual_accounts_spec.rb
243
286
  - spec/spec_helper.rb
244
287
  - spec/support/vcr_cassettes/Actions/can_create.yml
245
288
  - spec/support/vcr_cassettes/Actions/can_current.yml
@@ -254,6 +297,10 @@ test_files:
254
297
  - spec/support/vcr_cassettes/Authentication/can_use_just_a_token.yml
255
298
  - spec/support/vcr_cassettes/Authentication/handles_session_timeout_error.yml
256
299
  - spec/support/vcr_cassettes/Authentication/happens_lazily.yml
300
+ - spec/support/vcr_cassettes/Conversions/can_cancel_conversion/with_notes/has_a_non-empty_notes_attribute.yml
301
+ - spec/support/vcr_cassettes/Conversions/can_cancel_conversion/without_notes/has_a_empty_notes_attribute.yml
302
+ - spec/support/vcr_cassettes/Conversions/can_date_change_conversion.yml
303
+ - spec/support/vcr_cassettes/Conversions/can_split_conversion.yml
257
304
  - spec/support/vcr_cassettes/Error/contains_full_details_for_api_error.yml
258
305
  - spec/support/vcr_cassettes/Error/is_raised_on_a_bad_request.yml
259
306
  - spec/support/vcr_cassettes/Error/is_raised_on_a_forbidden_request.yml
@@ -261,13 +308,28 @@ test_files:
261
308
  - spec/support/vcr_cassettes/Error/is_raised_on_incorrect_authentication_details.yml
262
309
  - spec/support/vcr_cassettes/Error/is_raised_when_a_resource_is_not_found.yml
263
310
  - spec/support/vcr_cassettes/Error/is_raised_when_too_many_requests_have_been_issued.yml
311
+ - spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml
312
+ - spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml
313
+ - spec/support/vcr_cassettes/IBANs/can_find.yml
314
+ - spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml
315
+ - spec/support/vcr_cassettes/Payments/can_create.yml
316
+ - spec/support/vcr_cassettes/Payments/can_get_the_submission.yml
264
317
  - spec/support/vcr_cassettes/Rates/can_find.yml
265
318
  - spec/support/vcr_cassettes/Rates/can_provided_detailed_rate.yml
266
319
  - spec/support/vcr_cassettes/Reference/can_retrieve_beneficiary_required_details.yml
267
320
  - spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml
268
321
  - spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml
322
+ - spec/support/vcr_cassettes/Reference/can_retrieve_payer_required_details.yml
323
+ - spec/support/vcr_cassettes/Reference/can_retrieve_payment_dates.yml
324
+ - spec/support/vcr_cassettes/Reference/can_retrieve_payment_purpose_codes.yml
269
325
  - spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml
270
326
  - spec/support/vcr_cassettes/Settlements/can_add_conversion.yml
271
327
  - spec/support/vcr_cassettes/Settlements/can_release.yml
272
328
  - spec/support/vcr_cassettes/Settlements/can_remove_conversion.yml
273
329
  - spec/support/vcr_cassettes/Settlements/can_unrelease.yml
330
+ - spec/support/vcr_cassettes/Transfers/can_create.yml
331
+ - spec/support/vcr_cassettes/Transfers/can_find.yml
332
+ - spec/support/vcr_cassettes/Transfers/can_retrieve.yml
333
+ - spec/support/vcr_cassettes/VirtualAccounts/can_find.yml
334
+ - spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml
335
+ - spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml
data/Guardfile DELETED
@@ -1,14 +0,0 @@
1
- guard :rspec, cmd: "bundle exec rspec" do
2
- require "guard/rspec/dsl"
3
- dsl = Guard::RSpec::Dsl.new(self)
4
-
5
- # RSpec files
6
- rspec = dsl.rspec
7
- watch(rspec.spec_helper) { rspec.spec_dir }
8
- watch(rspec.spec_support) { rspec.spec_dir }
9
- watch(rspec.spec_files)
10
-
11
- # Ruby files
12
- ruby = dsl.ruby
13
- dsl.watch_spec_files_for(ruby.lib_files)
14
- end