mangopay 3.21.0 → 3.23.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ebf18b4543fba2a3bb18f64c34d7e104647012da1c9a177f20df4c9399832c1
4
- data.tar.gz: 9907c1a093070848df08f761bcf6ca8e40675220d99bed080987f6545b99d8a2
3
+ metadata.gz: 3fe8c22cc128558db9e859283f7e723af2e7bc54e1b2b98cb82afc23f03de814
4
+ data.tar.gz: 2747bafde96b9a150cdd9505b2348da658d098746ec5fc1d6e5ffd0eafd4637c
5
5
  SHA512:
6
- metadata.gz: d1abeac43f7b0222ff080a37f6c20c58a01933767e54d6c0b322b13d2b87515c37f791c606c5c755f25957dbfca274139f680ef32bd690e5614345fba45ffd39
7
- data.tar.gz: 9a083534b2638e0cba743a6a15b9af3e7c25a36108ff87db434aa18dbbf834fbd6a4efe76a2de180cea7a1aeff0fb55a6bf8ca0275cb741142455e1b65f333af
6
+ metadata.gz: f530fd2a85bdeb7ef143048d9ce12f12d2e51a6ddbec4254c316235248add77f52ddf50e890906ca1ea4b0ac43720a397a37e37df5dc8051d5ecc4f5769e801a
7
+ data.tar.gz: 8044741c0cbb7650780e340321c8e5035f2ed817b355d22fb0f265e81fb1f5afd411c0df0fa2c8b5ca061fa898213cf593f3409a3c7e0fc5dba727804d3fdbc3
@@ -5,10 +5,6 @@ on:
5
5
  branches:
6
6
  # push on master branch
7
7
  - master
8
- # push on a feature branch
9
- - feature/*
10
- # push on a bugfix branch
11
- - bugfix/*
12
8
  pull_request:
13
9
  branches: [ master ]
14
10
 
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## [3.23.0] - 2024-03-08
2
+ ### Fixed
3
+
4
+ - Conversions endpoint spelling
5
+
6
+ ### Added
7
+
8
+ - The optional Fees parameter is now available on instant conversions, allowing platforms to charge users for FX services. More information [here](https://mangopay.com/docs/release-notes/millefeuille).
9
+ - Platforms can now use a quote to secure the rate for a conversion between two currencies for a set amount of time. More information [here](https://mangopay.com/docs/release-notes/millefeuille).
10
+ - Introduced the `uk_header_flag` boolean configuration key. Platforms partnered with Mangopay's UK entity should set this key to true for proper configuration.
11
+
12
+ ## [3.22.0] - 2024-02-08
13
+ ### Added
14
+
15
+ - New endpoint to look up metadata from BIN or Google Pay token. More information [here](https://mangopay.com/docs/release-notes/kisale)
16
+
1
17
  ## [3.21.0] - 2024-01-23
2
18
  ### Added
3
19
 
@@ -73,7 +73,7 @@ module MangoPay
73
73
  end
74
74
 
75
75
  def store(token)
76
- File.open(file_path, File::RDWR|File::CREAT, 0644) do |f|
76
+ File.open(file_path, File::RDWR | File::CREAT, 0644) do |f|
77
77
  f.flock(File::LOCK_EX)
78
78
  f.truncate(0)
79
79
  f.rewind
@@ -0,0 +1,39 @@
1
+ module MangoPay
2
+
3
+ class Conversion < Resource
4
+ include HTTPCalls::Fetch
5
+ include HTTPCalls::Update
6
+
7
+ class << self
8
+ def get_rate(debited_currency, credited_currency, params)
9
+ url = "#{MangoPay.api_path}/conversions/rate/#{debited_currency}/#{credited_currency}"
10
+ MangoPay.request(:get, url, params)
11
+ end
12
+
13
+ def create_instant_conversion(params)
14
+ url = "#{MangoPay.api_path}/conversions/instant-conversion"
15
+ MangoPay.request(:post, url, params)
16
+ end
17
+
18
+ def create_quoted_conversion(params)
19
+ url = "#{MangoPay.api_path}/conversions/quoted-conversion"
20
+ MangoPay.request(:post, url, params)
21
+ end
22
+
23
+ def get(id, params)
24
+ url = "#{MangoPay.api_path}/conversions/#{id}"
25
+ MangoPay.request(:get, url, params)
26
+ end
27
+
28
+ def create_quote(params)
29
+ url = "#{MangoPay.api_path}/conversions/quote"
30
+ MangoPay.request(:post, url, params)
31
+ end
32
+
33
+ def get_quote(id, params)
34
+ url = "#{MangoPay.api_path}/conversions/quote/#{id}"
35
+ MangoPay.request(:get, url, params)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,13 @@
1
+ module MangoPay
2
+ class PaymentMethodMetadata < Resource
3
+ include HTTPCalls::Fetch
4
+ include HTTPCalls::Update
5
+
6
+ class << self
7
+ def get_metadata(metadata)
8
+ url = "#{MangoPay.api_path}/payment-methods/metadata"
9
+ MangoPay.request(:post, url, metadata)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module MangoPay
2
- VERSION = '3.21.0'
2
+ VERSION = '3.23.0'
3
3
  end
data/lib/mangopay.rb CHANGED
@@ -44,7 +44,8 @@ module MangoPay
44
44
  autoload :Ubo, 'mangopay/ubo'
45
45
  autoload :Regulatory, 'mangopay/regulatory'
46
46
  autoload :Deposit, 'mangopay/deposit'
47
- autoload :InstantConversion, 'mangopay/instant_conversion'
47
+ autoload :Conversion, 'mangopay/conversion'
48
+ autoload :PaymentMethodMetadata, 'mangopay/payment_method_metadata'
48
49
 
49
50
  # temporary
50
51
  autoload :Temp, 'mangopay/temp'
@@ -56,7 +57,7 @@ module MangoPay
56
57
  :client_id, :client_apiKey,
57
58
  :temp_dir, :log_file, :http_timeout,
58
59
  :http_max_retries, :http_open_timeout,
59
- :logger, :use_ssl
60
+ :logger, :use_ssl, :uk_header_flag
60
61
 
61
62
  def apply_configuration
62
63
  MangoPay.configure do |config|
@@ -69,6 +70,7 @@ module MangoPay
69
70
  config.http_open_timeout = @http_open_timeout
70
71
  config.use_ssl = @use_ssl
71
72
  config.logger = @logger
73
+ config.uk_header_flag = @uk_header_flag
72
74
  end
73
75
  end
74
76
 
@@ -99,6 +101,10 @@ module MangoPay
99
101
 
100
102
  true
101
103
  end
104
+
105
+ def uk_header_flag
106
+ @uk_header_flag || false
107
+ end
102
108
  end
103
109
 
104
110
  class << self
@@ -192,6 +198,10 @@ module MangoPay
192
198
  headers['Idempotency-Key'] = headers_or_idempotency_key if headers_or_idempotency_key != nil
193
199
  end
194
200
 
201
+ if configuration.uk_header_flag
202
+ headers['x-tenant-id'] = 'uk'
203
+ end
204
+
195
205
  res = Net::HTTP.start(uri.host, uri.port, :use_ssl => configuration.use_ssl?, :read_timeout => configuration.http_timeout,
196
206
  :max_retries => configuration.http_max_retries,
197
207
  :open_timeout => configuration.http_open_timeout, ssl_version: :TLSv1_2) do |http|
@@ -0,0 +1,64 @@
1
+ describe MangoPay::Conversion, type: :feature do
2
+ include_context 'instant_conversion'
3
+
4
+ describe 'GET CONVERSION RATE' do
5
+ it 'get a conversion rate' do
6
+ conversion_rate = get_conversion_rate('EUR','GBP')
7
+
8
+ expect(conversion_rate['ClientRate']).not_to be_nil
9
+ expect(conversion_rate['MarketRate']).not_to be_nil
10
+ end
11
+ end
12
+
13
+ describe 'CREATE INSTANT CONVERSION' do
14
+ it 'creates a new instant conversion' do
15
+ conversion = create_instant_conversion
16
+
17
+ expect(conversion['DebitedFunds']['Amount']).not_to be_nil
18
+ expect(conversion['CreditedFunds']['Amount']).not_to be_nil
19
+ expect(conversion['Fees']['Amount']).not_to be_nil
20
+ expect(conversion['Status']).equal? 'SUCCEEDED'
21
+ end
22
+ end
23
+
24
+ describe 'CREATE QUOTED CONVERSION' do
25
+ it 'creates a new quoted conversion' do
26
+ conversion = create_quoted_conversion
27
+
28
+ expect(conversion['DebitedFunds']['Amount']).not_to be_nil
29
+ expect(conversion['CreditedFunds']['Amount']).not_to be_nil
30
+ expect(conversion['Status']).equal? 'SUCCEEDED'
31
+ end
32
+ end
33
+
34
+ describe 'GET EXISTING CONVERSION' do
35
+ it 'get an existing conversion' do
36
+ conversion = create_instant_conversion
37
+ returned_conversion = get_conversion(conversion['Id'])
38
+
39
+ expect(returned_conversion['DebitedFunds']['Amount']).not_to be_nil
40
+ expect(returned_conversion['CreditedFunds']['Amount']).not_to be_nil
41
+ expect(conversion['Fees']['Amount']).not_to be_nil
42
+ expect(returned_conversion['Status']).equal? 'SUCCEEDED'
43
+ end
44
+ end
45
+
46
+ describe 'CREATE CONVERSION QUOTE' do
47
+ it 'create a conversion quote' do
48
+ conversion_quote = create_conversion_quote
49
+ expect(conversion_quote['DebitedFunds']).not_to be_nil
50
+ expect(conversion_quote['CreditedFunds']).not_to be_nil
51
+ expect(conversion_quote['Duration']).equal? 90
52
+ end
53
+ end
54
+
55
+ describe 'GET CONVERSION QUOTE' do
56
+ it 'get a conversion quote' do
57
+ conversion_quote = create_conversion_quote
58
+ returned_conversion_quote = get_conversion_quote(conversion_quote['Id'])
59
+ expect(returned_conversion_quote['DebitedFunds']).not_to be_nil
60
+ expect(returned_conversion_quote['CreditedFunds']).not_to be_nil
61
+ expect(returned_conversion_quote['Duration']).equal? 90
62
+ end
63
+ end
64
+ end
@@ -5,7 +5,7 @@ describe MangoPay::Deposit do
5
5
  describe 'CREATE' do
6
6
  it 'creates a new deposit' do
7
7
  author = new_natural_user
8
- card_registration = new_card_registration_completed_for_deposit
8
+ card_registration = new_card_registration_completed
9
9
  deposit = create_new_deposit(card_registration['CardId'], author['Id'])
10
10
 
11
11
  assert_deposit(deposit, card_registration['CardId'], author["Id"])
@@ -15,7 +15,7 @@ describe MangoPay::Deposit do
15
15
  describe 'GET' do
16
16
  it 'get an existing deposit' do
17
17
  author = new_natural_user
18
- card_registration = new_card_registration_completed_for_deposit
18
+ card_registration = new_card_registration_completed
19
19
  deposit = create_new_deposit(card_registration['CardId'], author['Id'])
20
20
 
21
21
  assert_deposit(deposit, card_registration['CardId'], author["Id"])
@@ -64,7 +64,6 @@ def assert_deposit(deposit, card_reg_id, author_id)
64
64
  expect(deposit['CardId']).to eq(card_reg_id)
65
65
  expect(deposit['AuthorId']).to eq(author_id)
66
66
  expect(deposit['SecureModeReturnURL']).not_to be_nil
67
- expect(deposit['SecureModeRedirectURL']).not_to be_nil
68
67
  expect(deposit['PaymentType']).not_to be_nil
69
68
  expect(deposit['ExecutionType']).not_to be_nil
70
69
  expect(deposit['StatementDescriptor']).not_to be_nil
@@ -19,6 +19,8 @@ describe MangoPay::PayIn::PreAuthorized::Direct, type: :feature do
19
19
  describe 'CREATE' do
20
20
  it 'creates a preauthorized direct payin' do
21
21
  created = new_payin_preauthorized_direct
22
+ # wait for the transactions to be created
23
+ sleep(2)
22
24
  transactions = MangoPay::PreAuthorization.transactions(created['PreauthorizationId'])
23
25
  expect(created['Id']).not_to be_nil
24
26
  expect(transactions[0]['Status']).to eq('SUCCEEDED')
@@ -0,0 +1,15 @@
1
+ describe MangoPay::PaymentMethodMetadata, type: :feature do
2
+ include_context 'payment_method_metadata'
3
+
4
+ describe 'GET PAYMENT METHOD METADATA' do
5
+ it 'gets a new payment method metadata' do
6
+ metadata = get_payment_method_metadata
7
+
8
+ expect(metadata).not_to be_nil
9
+ expect(metadata['IssuerCountryCode']).not_to be_nil
10
+ expect(metadata['IssuingBank']).not_to be_nil
11
+ expect(metadata['BinData']).not_to be_nil
12
+ expect(metadata['CardType']).not_to be_nil
13
+ end
14
+ end
15
+ end
@@ -5,7 +5,7 @@ describe MangoPay::PayIn::RecurringPayments, type: :feature do
5
5
 
6
6
  describe 'CREATE' do
7
7
  it 'creates a recurring payment' do
8
- cardreg = new_card_registration_3dsecure_completed
8
+ cardreg = new_card_registration_completed
9
9
  wallet = new_wallet
10
10
  recurring = MangoPay::PayIn::RecurringPayments::Recurring.create(
11
11
  AuthorId: new_natural_user['Id'],
@@ -379,51 +379,7 @@ shared_context 'payins' do
379
379
  data = {
380
380
  data: cardreg['PreregistrationData'],
381
381
  accessKeyRef: cardreg['AccessKey'],
382
- cardNumber: 4970105191923460,
383
- cardExpirationDate: 1226,
384
- cardCvx: 123 }
385
-
386
- res = Net::HTTP.post_form(URI(cardreg['CardRegistrationURL']), data)
387
- raise Exception, [res, res.body] unless res.is_a?(Net::HTTPOK) && res.body.start_with?('data=')
388
-
389
- cardreg['RegistrationData'] = res.body
390
-
391
- # 3rd step: update (fills-in CardId) and return it
392
- MangoPay::CardRegistration.update(cardreg['Id'],
393
- RegistrationData: cardreg['RegistrationData'])
394
- end
395
-
396
- let(:new_card_registration_3dsecure_completed) do
397
- # 1st step: create
398
- cardreg = new_card_registration
399
-
400
- # 2nd step: tokenize by payline (fills-in RegistrationData)
401
- data = {
402
- data: cardreg['PreregistrationData'],
403
- accessKeyRef: cardreg['AccessKey'],
404
- cardNumber: 4970105191923460,
405
- cardExpirationDate: 1224,
406
- cardCvx: 123 }
407
-
408
- res = Net::HTTP.post_form(URI(cardreg['CardRegistrationURL']), data)
409
- raise Exception, [res, res.body] unless res.is_a?(Net::HTTPOK) && res.body.start_with?('data=')
410
-
411
- cardreg['RegistrationData'] = res.body
412
-
413
- # 3rd step: update (fills-in CardId) and return it
414
- MangoPay::CardRegistration.update(cardreg['Id'],
415
- RegistrationData: cardreg['RegistrationData'])
416
- end
417
-
418
- let(:new_card_registration_completed_for_deposit) do
419
- # 1st step: create
420
- cardreg = new_card_registration
421
-
422
- # 2nd step: tokenize by payline (fills-in RegistrationData)
423
- data = {
424
- data: cardreg['PreregistrationData'],
425
- accessKeyRef: cardreg['AccessKey'],
426
- cardNumber: 4970105181818183,
382
+ cardNumber: 4970107111111119,
427
383
  cardExpirationDate: 1226,
428
384
  cardCvx: 123 }
429
385
 
@@ -514,8 +470,8 @@ shared_context 'payins' do
514
470
  MangoPay::PayIn::Klarna::Web.create(
515
471
  AuthorId: new_natural_user['Id'],
516
472
  CreditedWalletId: new_wallet['Id'],
517
- DebitedFunds: {Currency: 'EUR', Amount: 400},
518
- Fees: {Currency: 'EUR', Amount: 10},
473
+ DebitedFunds: { Currency: 'EUR', Amount: 400 },
474
+ Fees: { Currency: 'EUR', Amount: 10 },
519
475
  ReturnURL: 'http://www.my-site.com/returnURL',
520
476
  LineItems: [
521
477
  {
@@ -574,8 +530,8 @@ shared_context 'payins' do
574
530
  MangoPay::PayIn::Ideal::Web.create(
575
531
  AuthorId: new_natural_user['Id'],
576
532
  CreditedWalletId: new_wallet['Id'],
577
- DebitedFunds: {Currency: 'EUR', Amount: 400},
578
- Fees: {Currency: 'EUR', Amount: 10},
533
+ DebitedFunds: { Currency: 'EUR', Amount: 400 },
534
+ Fees: { Currency: 'EUR', Amount: 10 },
579
535
  ReturnURL: 'http://www.my-site.com/returnURL',
580
536
  Bic: 'REVOLT21',
581
537
  StatementDescriptor: "test",
@@ -590,8 +546,8 @@ shared_context 'payins' do
590
546
  MangoPay::PayIn::Giropay::Web.create(
591
547
  AuthorId: new_natural_user['Id'],
592
548
  CreditedWalletId: new_wallet['Id'],
593
- DebitedFunds: {Currency: 'EUR', Amount: 400},
594
- Fees: {Currency: 'EUR', Amount: 10},
549
+ DebitedFunds: { Currency: 'EUR', Amount: 400 },
550
+ Fees: { Currency: 'EUR', Amount: 10 },
595
551
  ReturnURL: 'http://www.my-site.com/returnURL',
596
552
  StatementDescriptor: "test",
597
553
  Tag: 'Test PayIn/Giropay/Web'
@@ -785,7 +741,7 @@ shared_context 'payins' do
785
741
  # wallet with money
786
742
  ###############################################
787
743
  #
788
- let(:new_wallet_with_money){ create_new_wallet_with_money(new_natural_user) }
744
+ let(:new_wallet_with_money) { create_new_wallet_with_money(new_natural_user) }
789
745
 
790
746
  def create_new_wallet_with_money(user)
791
747
  wallet = MangoPay::Wallet.create(
@@ -940,8 +896,9 @@ end
940
896
  ###############################################
941
897
  shared_context 'instant_conversion' do
942
898
  include_context 'payins'
899
+
943
900
  def get_conversion_rate(debited_currency, credited_currency)
944
- MangoPay::InstantConversion.get_rate(debited_currency, credited_currency, params = {})
901
+ MangoPay::Conversion.get_rate(debited_currency, credited_currency, params = {})
945
902
  end
946
903
 
947
904
  def create_instant_conversion()
@@ -953,7 +910,7 @@ shared_context 'instant_conversion' do
953
910
  Tag: 'Test wallet'
954
911
  )
955
912
 
956
- MangoPay::InstantConversion.create(
913
+ MangoPay::Conversion.create_instant_conversion(
957
914
  AuthorId: user['Id'],
958
915
  CreditedWalletId: credited_wallet['Id'],
959
916
  DebitedWalletId: new_wallet_with_money['Id'],
@@ -964,11 +921,65 @@ shared_context 'instant_conversion' do
964
921
  Currency: 'EUR',
965
922
  Amount: 79
966
923
  },
924
+ Fees: {
925
+ Currency: 'EUR',
926
+ Amount: 9
927
+ },
967
928
  Tag: 'Instant conversion test'
968
929
  )
969
930
  end
970
931
 
971
- def get_instant_conversion(id)
972
- MangoPay::InstantConversion.get(id, params = {})
932
+ def create_quoted_conversion()
933
+ user = new_natural_user
934
+ credited_wallet = MangoPay::Wallet.create(
935
+ Owners: [user['Id']],
936
+ Description: 'A test wallet',
937
+ Currency: 'GBP',
938
+ Tag: 'Test wallet'
939
+ )
940
+ quote = create_conversion_quote
941
+
942
+ MangoPay::Conversion.create_quoted_conversion(
943
+ AuthorId: user['Id'],
944
+ QuoteId: quote['Id'],
945
+ CreditedWalletId: credited_wallet['Id'],
946
+ DebitedWalletId: new_wallet_with_money['Id'],
947
+ Tag: 'Quoted conversion test'
948
+ )
949
+ end
950
+
951
+ def create_conversion_quote
952
+ MangoPay::Conversion.create_quote(
953
+ CreditedFunds: { Currency: 'GBP' },
954
+ DebitedFunds: { Currency: 'EUR', Amount: 50 },
955
+ Duration: 90,
956
+ Tag: 'Created using the Mangopay Ruby SDK'
957
+ )
958
+ end
959
+
960
+ def get_conversion(id)
961
+ MangoPay::Conversion.get(id, params = {})
962
+ end
963
+
964
+ def get_conversion_quote(id)
965
+ MangoPay::Conversion.get_quote(id, params = {})
966
+ end
967
+ end
968
+
969
+ ###############################################
970
+ # payment methods metadata
971
+ ###############################################
972
+ shared_context 'payment_method_metadata' do
973
+ include_context 'payins'
974
+
975
+ def get_payment_method_metadata
976
+
977
+ wlt = new_wallet
978
+ pay_in = create_new_payin_card_direct(wlt, 1000)
979
+
980
+ MangoPay::PaymentMethodMetadata.get_metadata(
981
+ Type: 'BIN',
982
+ Bin: pay_in['CardInfo']['BIN']
983
+ )
973
984
  end
974
985
  end
@@ -22,6 +22,8 @@ describe MangoPay::Transaction do
22
22
  it 'fetches list with two transactions after payin and payout done' do
23
23
  payin = new_payin_card_direct
24
24
  payout = create_new_payout_bankwire(payin)
25
+ # wait for the transactions to be created
26
+ sleep(2)
25
27
  transactions = MangoPay::Transaction.fetch(new_wallet['Id'])
26
28
 
27
29
  expect(transactions).to be_kind_of(Array)
@@ -37,6 +39,9 @@ describe MangoPay::Transaction do
37
39
  payout = create_new_payout_bankwire(payin)
38
40
  wallet_id = new_wallet['Id']
39
41
 
42
+ # wait for the transactions to be created
43
+ sleep(2)
44
+
40
45
  by_nature_reg = MangoPay::Transaction.fetch(wallet_id, {'Nature' => 'REGULAR'})
41
46
  by_nature_ref = MangoPay::Transaction.fetch(wallet_id, {'Nature' => 'REFUND'})
42
47
  expect(by_nature_reg.count).to eq 2
@@ -95,6 +95,8 @@ describe MangoPay::User do
95
95
  it 'fetches list with two transactions after payin and payout done' do
96
96
  payin = new_payin_card_direct
97
97
  payout = create_new_payout_bankwire(payin)
98
+ # wait for the transactions to be created
99
+ sleep(2)
98
100
  transactions = MangoPay::User.transactions(new_natural_user['Id'])
99
101
 
100
102
  expect(transactions).to be_kind_of(Array)
@@ -48,6 +48,8 @@ describe MangoPay::Wallet do
48
48
  it 'fetches list with two transactions after payin and payout done' do
49
49
  payin = new_payin_card_direct
50
50
  payout = create_new_payout_bankwire(payin)
51
+ # wait for the transactions to be created
52
+ sleep(2)
51
53
  transactions = MangoPay::Wallet.transactions(new_wallet['Id'])
52
54
 
53
55
  expect(transactions).to be_kind_of(Array)
@@ -63,6 +65,9 @@ describe MangoPay::Wallet do
63
65
  payout = create_new_payout_bankwire(payin)
64
66
  wallet_id = new_wallet['Id']
65
67
 
68
+ # wait for the transactions to be created
69
+ sleep(2)
70
+
66
71
  by_nature_reg = MangoPay::Wallet.transactions(wallet_id, {'Nature' => 'REGULAR'})
67
72
  by_nature_ref = MangoPay::Wallet.transactions(wallet_id, {'Nature' => 'REFUND'})
68
73
  expect(by_nature_reg.count).to eq 2
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mangopay
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.21.0
4
+ version: 3.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoffroy Lorieux
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-01-23 00:00:00.000000000 Z
12
+ date: 2024-03-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
@@ -82,6 +82,7 @@ files:
82
82
  - lib/mangopay/card.rb
83
83
  - lib/mangopay/card_registration.rb
84
84
  - lib/mangopay/client.rb
85
+ - lib/mangopay/conversion.rb
85
86
  - lib/mangopay/deposit.rb
86
87
  - lib/mangopay/dispute.rb
87
88
  - lib/mangopay/errors.rb
@@ -89,7 +90,6 @@ files:
89
90
  - lib/mangopay/filter_parameters.rb
90
91
  - lib/mangopay/hook.rb
91
92
  - lib/mangopay/http_calls.rb
92
- - lib/mangopay/instant_conversion.rb
93
93
  - lib/mangopay/json.rb
94
94
  - lib/mangopay/kyc_document.rb
95
95
  - lib/mangopay/legal_user.rb
@@ -97,6 +97,7 @@ files:
97
97
  - lib/mangopay/natural_user.rb
98
98
  - lib/mangopay/pay_in.rb
99
99
  - lib/mangopay/pay_out.rb
100
+ - lib/mangopay/payment_method_metadata.rb
100
101
  - lib/mangopay/pre_authorization.rb
101
102
  - lib/mangopay/refund.rb
102
103
  - lib/mangopay/regulatory.rb
@@ -117,6 +118,7 @@ files:
117
118
  - spec/mangopay/client_spec.png
118
119
  - spec/mangopay/client_spec.rb
119
120
  - spec/mangopay/configuration_spec.rb
121
+ - spec/mangopay/conversion_spec.rb
120
122
  - spec/mangopay/deposit_spec.rb
121
123
  - spec/mangopay/dispute_spec.png
122
124
  - spec/mangopay/dispute_spec.rb
@@ -124,7 +126,6 @@ files:
124
126
  - spec/mangopay/fetch_filters_spec.rb
125
127
  - spec/mangopay/hook_spec.rb
126
128
  - spec/mangopay/idempotency_spec.rb
127
- - spec/mangopay/instant_conversion_spec.rb
128
129
  - spec/mangopay/kyc_document_spec.png
129
130
  - spec/mangopay/kyc_document_spec.rb
130
131
  - spec/mangopay/log_requests_filter_spec.rb
@@ -147,6 +148,7 @@ files:
147
148
  - spec/mangopay/payin_paypal_web_spec.rb
148
149
  - spec/mangopay/payin_preauthorized_direct_spec.rb
149
150
  - spec/mangopay/payin_satispay_web_spec.rb
151
+ - spec/mangopay/payment_method_metadata_spec.rb
150
152
  - spec/mangopay/payout_bankwire_spec.rb
151
153
  - spec/mangopay/preauthorization_spec.rb
152
154
  - spec/mangopay/recurring_payin_spec.rb
@@ -194,6 +196,7 @@ test_files:
194
196
  - spec/mangopay/client_spec.png
195
197
  - spec/mangopay/client_spec.rb
196
198
  - spec/mangopay/configuration_spec.rb
199
+ - spec/mangopay/conversion_spec.rb
197
200
  - spec/mangopay/deposit_spec.rb
198
201
  - spec/mangopay/dispute_spec.png
199
202
  - spec/mangopay/dispute_spec.rb
@@ -201,7 +204,6 @@ test_files:
201
204
  - spec/mangopay/fetch_filters_spec.rb
202
205
  - spec/mangopay/hook_spec.rb
203
206
  - spec/mangopay/idempotency_spec.rb
204
- - spec/mangopay/instant_conversion_spec.rb
205
207
  - spec/mangopay/kyc_document_spec.png
206
208
  - spec/mangopay/kyc_document_spec.rb
207
209
  - spec/mangopay/log_requests_filter_spec.rb
@@ -224,6 +226,7 @@ test_files:
224
226
  - spec/mangopay/payin_paypal_web_spec.rb
225
227
  - spec/mangopay/payin_preauthorized_direct_spec.rb
226
228
  - spec/mangopay/payin_satispay_web_spec.rb
229
+ - spec/mangopay/payment_method_metadata_spec.rb
227
230
  - spec/mangopay/payout_bankwire_spec.rb
228
231
  - spec/mangopay/preauthorization_spec.rb
229
232
  - spec/mangopay/recurring_payin_spec.rb
@@ -1,24 +0,0 @@
1
- module MangoPay
2
-
3
- class InstantConversion < Resource
4
- include HTTPCalls::Fetch
5
- include HTTPCalls::Update
6
-
7
- class << self
8
- def get_rate(debited_currency, credited_currency, params)
9
- url = "#{MangoPay.api_path}/conversion/rate/#{debited_currency}/#{credited_currency}"
10
- MangoPay.request(:get, url, params)
11
- end
12
-
13
- def create(params)
14
- url = "#{MangoPay.api_path}/instant-conversion"
15
- MangoPay.request(:post, url, params)
16
- end
17
-
18
- def get(id, params)
19
- url = "#{MangoPay.api_path}/instant-conversion/#{id}"
20
- MangoPay.request(:get, url, params)
21
- end
22
- end
23
- end
24
- end
@@ -1,33 +0,0 @@
1
- describe MangoPay::InstantConversion, type: :feature do
2
- include_context 'instant_conversion'
3
-
4
- describe 'GET CONVERSION RATE' do
5
- it 'get a conversion rate' do
6
- conversion_rate = get_conversion_rate('EUR','GBP')
7
-
8
- expect(conversion_rate['ClientRate']).not_to be_nil
9
- expect(conversion_rate['MarketRate']).not_to be_nil
10
- end
11
- end
12
-
13
- describe 'CREATE CONVERSION' do
14
- it 'creates a new conversion' do
15
- conversion = create_instant_conversion
16
-
17
- expect(conversion['DebitedFunds']['Amount']).not_to be_nil
18
- expect(conversion['CreditedFunds']['Amount']).not_to be_nil
19
- expect(conversion['Status']).equal? 'SUCCEEDED'
20
- end
21
- end
22
-
23
- describe 'GET EXISTING CONVERSION' do
24
- it 'get an existing conversion' do
25
- conversion = create_instant_conversion
26
- returned_conversion = get_instant_conversion(conversion['Id'])
27
-
28
- expect(returned_conversion['DebitedFunds']['Amount']).not_to be_nil
29
- expect(returned_conversion['CreditedFunds']['Amount']).not_to be_nil
30
- expect(returned_conversion['Status']).equal? 'SUCCEEDED'
31
- end
32
- end
33
- end