mangopay 3.26.1 → 3.27.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cea2df4d903ca0809a7f7ef9bc42b0263ee2df6ff5ba71fdd37a99c081b96ca3
4
- data.tar.gz: 4abceca571bd69f5a47c0597b674ed6869c91f16ddb9408da6b28d23ff24e04e
3
+ metadata.gz: 9aacfa6dd021ce341e9f435dcca6b77eed14b6a85d9c9e4907bad599f4bcb313
4
+ data.tar.gz: 22ad8f7d5179689c6841537d73729a4dd3430fb9cf42b9d9caca55658ef31be0
5
5
  SHA512:
6
- metadata.gz: 73bec6513fa3016b23164e62680c12f5a030b2e150b02fbf01fb4a93973b8e5071dd72e17a92e4de188e6492c70404561062235563038d60c077853c02beb83c
7
- data.tar.gz: 807e1c583b1114fa34b750500de47b9ea827a6975d06652bac235ffd1139a161e088e48afda6c1a103788cc6cfb60e1689c7f20d762fa713772f1b266aecb9ac
6
+ metadata.gz: da2fa47b3367011d9c7ead37af5646aea23ef4b2fab2fb6859ce770a913774d601e7b9b22877ede7709735a502667f626e154aeb10d3637e4dd650fe46029b2d
7
+ data.tar.gz: afb180e3d2040d91e9827cce7eba960332d6132a316924dcbea3e6aafa990ab7139262abaad98ea9d53c70ada3d43e865b6b91afc849443ef6c319b05fd3345b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## [3.27.0] - 2024-10-29
2
+ ### Added
3
+
4
+ New endpoints for The Virtual Account object:
5
+ - [Create a Virtual Account]()
6
+ - [Deactivate a Virtual Account]()
7
+ - [View a Virtual Account]()
8
+ - [List Virtual Accounts for a Wallet]()
9
+ - [View Client Availabilities]()
10
+
1
11
  ## [3.26.1] - 2024-10-03
2
12
  ### Fixed
3
13
 
@@ -1,3 +1,3 @@
1
1
  module MangoPay
2
- VERSION = '3.26.1'
2
+ VERSION = '3.27.0'
3
3
  end
@@ -0,0 +1,44 @@
1
+ module MangoPay
2
+
3
+ class VirtualAccount < Resource
4
+ class << self
5
+ # Creates a new virtual account
6
+ def create(wallet_id, params, idempotency_key = nil)
7
+ url = "#{MangoPay.api_path}/wallets/#{wallet_id}/virtual-accounts"
8
+ MangoPay.request(:post, url, params, {}, idempotency_key)
9
+ end
10
+
11
+ # Updates:
12
+ # - irreversibly deactivates a virtual account with +virtual_account_id+
13
+ # see https://docs.mangopay.com/api-reference/virtual-accounts/deactivate-virtual-account
14
+ def deactivate(wallet_id, virtual_account_id, idempotency_key = nil)
15
+ url = "#{MangoPay.api_path}/wallets/#{wallet_id}/virtual-accounts/#{virtual_account_id}"
16
+ MangoPay.request(:put, url, {}, {}, idempotency_key)
17
+ end
18
+
19
+ # Fetches:
20
+ # - view a virtual account with +virtual_account_id+
21
+ # see https://docs.mangopay.com/api-reference/virtual-accounts/view-virtual-account
22
+ def fetch(wallet_id, virtual_account_id)
23
+ url = "#{MangoPay.api_path}/wallets/#{wallet_id}/virtual-accounts/#{virtual_account_id}"
24
+ MangoPay.request(:get, url, {})
25
+ end
26
+
27
+ # Fetches:
28
+ # - view virtual accounts for given +wallet_id+
29
+ # see https://docs.mangopay.com/api-reference/virtual-accounts/list-virtual-accounts-wallet
30
+ def fetch_all(wallet_id, filters = {})
31
+ url = "#{MangoPay.api_path}/wallets/#{wallet_id}/virtual-accounts"
32
+ MangoPay.request(:get, url, {}, filters)
33
+ end
34
+
35
+ # Fetches:
36
+ # Allows to check which account countries and currencies are available
37
+ # see https://docs.mangopay.com/api-reference/virtual-accounts/view-virtual-account-availabilities
38
+ def fetch_availabilities(filters = {})
39
+ url = "#{MangoPay.api_path}/virtual-accounts/availability"
40
+ MangoPay.request(:get, url, {}, filters)
41
+ end
42
+ end
43
+ end
44
+ end
data/lib/mangopay.rb CHANGED
@@ -47,6 +47,7 @@ module MangoPay
47
47
  autoload :Deposit, 'mangopay/deposit'
48
48
  autoload :Conversion, 'mangopay/conversion'
49
49
  autoload :PaymentMethodMetadata, 'mangopay/payment_method_metadata'
50
+ autoload :VirtualAccount, 'mangopay/virtual_account'
50
51
 
51
52
  # temporary
52
53
  autoload :Temp, 'mangopay/temp'
@@ -998,4 +998,21 @@ shared_context 'payment_method_metadata' do
998
998
  Bin: pay_in['CardInfo']['BIN']
999
999
  )
1000
1000
  end
1001
+ end
1002
+
1003
+ ###############################################
1004
+ shared_context 'virtual_account' do
1005
+ ###############################################
1006
+ include_context 'users'
1007
+ include_context 'wallets'
1008
+
1009
+ def new_virtual_account(wallet_id)
1010
+ create_virtual_account = {
1011
+ Country: 'FR',
1012
+ VirtualAccountPurpose: 'Collection',
1013
+ Tag: 'create virtual account tag'
1014
+ }
1015
+
1016
+ MangoPay::VirtualAccount.create(wallet_id, create_virtual_account)
1017
+ end
1001
1018
  end
@@ -0,0 +1,52 @@
1
+ describe MangoPay::VirtualAccount do
2
+ include_context 'virtual_account'
3
+ include_context 'wallets'
4
+
5
+ describe 'CREATE' do
6
+ it 'can create a Virtual Account' do
7
+ wallet = new_wallet
8
+ virtual_account = new_virtual_account(wallet['Id'])
9
+ expect(virtual_account).not_to be_nil
10
+ end
11
+ end
12
+
13
+ describe 'DEACTIVATE' do
14
+ it 'deactivates a Virtual Account' do
15
+ wallet = new_wallet
16
+ virtual_account = new_virtual_account(wallet['Id'])
17
+ deactivated = MangoPay::VirtualAccount.deactivate(wallet['Id'], virtual_account['Id'])
18
+ expect(deactivated).not_to be_nil
19
+ expect(deactivated['Status']).to eq 'CLOSED'
20
+ expect(deactivated['Id']).to eq(virtual_account['Id'])
21
+ end
22
+ end
23
+
24
+ describe 'FETCH' do
25
+ it 'can get a Virtual Account' do
26
+ wallet = new_wallet
27
+ virtual_account = new_virtual_account(wallet['Id'])
28
+ fetched = MangoPay::VirtualAccount.fetch(wallet['Id'], virtual_account['Id'])
29
+ expect(fetched).not_to be_nil
30
+ expect(fetched['Id']).to eq(virtual_account['Id'])
31
+ end
32
+ end
33
+
34
+ describe 'FETCH ALL' do
35
+ it 'can get all Virtual Accounts for a wallet' do
36
+ wallet = new_wallet
37
+ virtual_account = new_virtual_account(wallet['Id'])
38
+ fetched_list = MangoPay::VirtualAccount.fetch_all(wallet['Id'])
39
+ expect(fetched_list).not_to be_nil
40
+ expect(fetched_list[0]['Id']).to eq(virtual_account['Id'])
41
+ end
42
+ end
43
+
44
+ describe 'FETCH AVAILABILITIES' do
45
+ it 'get availabilities' do
46
+ availabilities = MangoPay::VirtualAccount.fetch_availabilities
47
+ expect(availabilities).not_to be_nil
48
+ expect(availabilities['Collection']).not_to be_nil
49
+ expect(availabilities['UserOwned']).not_to be_nil
50
+ end
51
+ end
52
+ end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mangopay
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.26.1
4
+ version: 3.27.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoffroy Lorieux
8
8
  - Sergiusz Woznicki
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-10-03 00:00:00.000000000 Z
12
+ date: 2024-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
@@ -109,6 +109,7 @@ files:
109
109
  - lib/mangopay/ubo_declaration.rb
110
110
  - lib/mangopay/user.rb
111
111
  - lib/mangopay/version.rb
112
+ - lib/mangopay/virtual_account.rb
112
113
  - lib/mangopay/wallet.rb
113
114
  - mangopay.gemspec
114
115
  - spec/mangopay/authorization_token_spec.rb
@@ -163,6 +164,7 @@ files:
163
164
  - spec/mangopay/ubo_declaration_spec.rb
164
165
  - spec/mangopay/ubo_spec.rb
165
166
  - spec/mangopay/user_spec.rb
167
+ - spec/mangopay/virtual_account_spec.rb
166
168
  - spec/mangopay/wallet_spec.rb
167
169
  - spec/spec_helper.rb
168
170
  - spec/tmp/.keep
@@ -170,7 +172,7 @@ homepage: http://docs.mangopay.com/
170
172
  licenses:
171
173
  - MIT
172
174
  metadata: {}
173
- post_install_message:
175
+ post_install_message:
174
176
  rdoc_options: []
175
177
  require_paths:
176
178
  - lib
@@ -186,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
188
  version: '0'
187
189
  requirements: []
188
190
  rubygems_version: 3.0.3.1
189
- signing_key:
191
+ signing_key:
190
192
  specification_version: 4
191
193
  summary: Ruby bindings for the version 2 of the MANGOPAY API
192
194
  test_files:
@@ -242,6 +244,7 @@ test_files:
242
244
  - spec/mangopay/ubo_declaration_spec.rb
243
245
  - spec/mangopay/ubo_spec.rb
244
246
  - spec/mangopay/user_spec.rb
247
+ - spec/mangopay/virtual_account_spec.rb
245
248
  - spec/mangopay/wallet_spec.rb
246
249
  - spec/spec_helper.rb
247
250
  - spec/tmp/.keep