mangopay 3.16.0 → 3.18.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: ee564c11b6f6937ee8e1736000f571f999effa0e65946cbbdf73a7fd2671c4ef
4
- data.tar.gz: 004c55f7857d52c18dedff47a44777d1f311739f6e039cd8953fa2ac49340cbc
3
+ metadata.gz: 4bb8e0bce0fbb8b2a758340182c8be4b0d904ae358cf72637da7e7c63d2413b7
4
+ data.tar.gz: ebeacb1b39d233d2ebec9326d61c69213111fa1dd945f4541068c73fdcbc5061
5
5
  SHA512:
6
- metadata.gz: d3bbdd4eb6cef6ca0093da5f10a84e9250272118725ffa9f99cc45959807ba38b441ec0799904d33787ef0a9769df9a08099a452748a4aba36e85dded23ab663
7
- data.tar.gz: 8bbb4cbca2206df01fc7a02687bbed28b531a1fa469e74b763318d36a95a40ebed000667bd7e1873626245c96483cffa4577be231e5275570b323828443d6998
6
+ metadata.gz: 3514922d67baa1a1f21fc2fe459fdeca27fd958c4214f0f66daddf3c29358f22cbbf16eb0ee95930c3f882b9e551340c2d59b6f40cf5578c0b5ab698e71e7ea8
7
+ data.tar.gz: 2ee8d0c7015e18a84df5468c869dc328a808ef841da61b4ade65d2223d2eb4031de08e3a6628d26510b241d333d7116ada4881e9329bd0d243907773e5239abc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## [3.18.0] - 2023-09-29
2
+ ### Added
3
+ - Instantly convert funds between 2 wallets of different currencies owned by the same user with the new SPOT FX endpoints
4
+
5
+ ## [3.17.0] - 2023-09-20
6
+ ### Added
7
+
8
+ - A new parameter for Paypal : ShippingPreference
9
+ - Klarna is now available as a payment method with Mangopay. This payment method is in private beta. Please contact support if you have any questions.
10
+ - #225 It's now possible to configure ssl_options. It's now possible to set to false in preproduction environment. Thanks to @mantaskujalis
11
+
1
12
  ## [3.16.0] - 2023-09-04
2
13
  ### Added
3
14
 
@@ -0,0 +1,24 @@
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
@@ -187,6 +187,16 @@ module MangoPay
187
187
  end
188
188
  end
189
189
 
190
+ module Klarna
191
+ class Web < Resource
192
+ include HTTPCalls::Create
193
+
194
+ def self.url(*)
195
+ "#{MangoPay.api_path}/payins/payment-methods/klarna"
196
+ end
197
+ end
198
+ end
199
+
190
200
  module RecurringPayments
191
201
  class Recurring < Resource
192
202
  include HTTPCalls::Create
@@ -1,3 +1,3 @@
1
1
  module MangoPay
2
- VERSION = '3.16.0'
2
+ VERSION = '3.18.0'
3
3
  end
data/lib/mangopay.rb CHANGED
@@ -44,6 +44,7 @@ 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
48
 
48
49
  # temporary
49
50
  autoload :Temp, 'mangopay/temp'
@@ -53,7 +54,7 @@ module MangoPay
53
54
  :client_id, :client_apiKey,
54
55
  :temp_dir, :log_file, :http_timeout,
55
56
  :http_max_retries, :http_open_timeout,
56
- :logger
57
+ :logger, :use_ssl
57
58
 
58
59
  def preproduction
59
60
  @preproduction || false
@@ -74,6 +75,14 @@ module MangoPay
74
75
  def http_open_timeout
75
76
  @http_open_timeout || 30
76
77
  end
78
+
79
+ def use_ssl?
80
+ return true unless preproduction == true
81
+ return true unless defined?(@use_ssl)
82
+ return false if @use_ssl == false
83
+
84
+ true
85
+ end
77
86
  end
78
87
 
79
88
  class << self
@@ -150,7 +159,7 @@ module MangoPay
150
159
  headers['Idempotency-Key'] = headers_or_idempotency_key if headers_or_idempotency_key != nil
151
160
  end
152
161
 
153
- res = Net::HTTP.start(uri.host, uri.port, use_ssl: true, :read_timeout => configuration.http_timeout,
162
+ res = Net::HTTP.start(uri.host, uri.port, :use_ssl => configuration.use_ssl?, :read_timeout => configuration.http_timeout,
154
163
  :max_retries => configuration.http_max_retries,
155
164
  :open_timeout => configuration.http_open_timeout, ssl_version: :TLSv1_2) do |http|
156
165
  req = Net::HTTP::const_get(method.capitalize).new(uri.request_uri, headers)
@@ -19,6 +19,36 @@ describe MangoPay::Configuration do
19
19
  expect(users).to be_kind_of(Array)
20
20
  end
21
21
 
22
+ describe '.use_ssl?' do
23
+ let(:configuration) { MangoPay::Configuration.new }
24
+
25
+ it 'defaults to true' do
26
+ expect(configuration.use_ssl?).to eq(true)
27
+ end
28
+
29
+ context 'when assigned to false in production' do
30
+ before do
31
+ configuration.use_ssl = false
32
+ configuration.preproduction = false
33
+ end
34
+
35
+ it 'uses true as value' do
36
+ expect(configuration.use_ssl?).to eq(true)
37
+ end
38
+ end
39
+
40
+ context 'when assigned to false in preproduction' do
41
+ before do
42
+ configuration.use_ssl = false
43
+ configuration.preproduction = true
44
+ end
45
+
46
+ it 'uses assigned as value' do
47
+ expect(configuration.use_ssl?).to eq(false)
48
+ end
49
+ end
50
+ end
51
+
22
52
  describe 'logger' do
23
53
  around(:each) do |example|
24
54
  c = MangoPay.configuration
@@ -0,0 +1,33 @@
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
@@ -0,0 +1,32 @@
1
+ describe MangoPay::PayIn::Klarna::Web, type: :feature do
2
+ include_context 'wallets'
3
+ include_context 'payins'
4
+
5
+ def check_type_and_status(payin)
6
+ expect(payin['Type']).to eq('PAYIN')
7
+ expect(payin['Nature']).to eq('REGULAR')
8
+ expect(payin['PaymentType']).to eq('KLARNA')
9
+ expect(payin['ExecutionType']).to eq('WEB')
10
+ expect(payin['Status']).to eq('CREATED')
11
+ end
12
+
13
+ describe 'CREATE' do
14
+ it 'creates a klarna web payin' do
15
+ created = new_payin_klarna_web
16
+ expect(created['Id']).not_to be_nil
17
+ expect(created['ReturnURL']).not_to be_nil
18
+ check_type_and_status(created)
19
+ end
20
+ end
21
+
22
+ describe 'FETCH' do
23
+ it 'fetches a payin' do
24
+ created = new_payin_klarna_web
25
+ fetched = MangoPay::PayIn.fetch(created['Id'])
26
+ expect(fetched['Id']).to eq(created['Id'])
27
+ check_type_and_status(created)
28
+ check_type_and_status(fetched)
29
+ end
30
+ end
31
+ end
32
+
@@ -28,5 +28,4 @@ describe MangoPay::PayIn::Multibanco::Web, type: :feature do
28
28
  check_type_and_status(fetched)
29
29
  end
30
30
  end
31
-
32
31
  end