mangopay 3.22.0 → 3.24.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 +4 -4
- data/.github/workflows/ruby_ci.yml +0 -4
- data/CHANGELOG.md +16 -0
- data/lib/mangopay/authorization_token.rb +1 -1
- data/lib/mangopay/conversion.rb +39 -0
- data/lib/mangopay/pay_in.rb +16 -0
- data/lib/mangopay/version.rb +1 -1
- data/lib/mangopay.rb +11 -2
- data/spec/mangopay/conversion_spec.rb +64 -0
- data/spec/mangopay/shared_resources.rb +40 -4
- metadata +5 -5
- data/lib/mangopay/instant_conversion.rb +0 -24
- data/spec/mangopay/instant_conversion_spec.rb +0 -33
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 7321bd891306f53afcbd49ecb871a872f7899d2ee039688392b076ee64c45142
         | 
| 4 | 
            +
              data.tar.gz: c93e03ce101e31b67def7784e6a1d9490ca4cf5d4254f312f6cda02d32f528ec
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 889df791bf8d890fedbaca69373b91f7f14bb332b9bd2bda09524bfe8d5438c04c0189aea216627c097ccfb1453c1b8f5f4fcb53f6c90d328c04b143e47b75bb
         | 
| 7 | 
            +
              data.tar.gz: 91c75bf32947a0eb9023d309164a5e416fb80744ca9516da1843b51dff4fdf01b7136c3c3489a3d50aecfa868c735c7f65330eebfe8f1e9ee37cbbaf79ad98de
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,19 @@ | |
| 1 | 
            +
            ## [3.24.0] - 2024-04-02
         | 
| 2 | 
            +
            ### Added
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            - New endpoint [Add tracking to Paypal payin](https://mangopay.com/docs/endpoints/paypal#add-tracking-paypal-payin)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            ## [3.23.0] - 2024-03-08
         | 
| 7 | 
            +
            ### Fixed
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            - Conversions endpoint spelling
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            ### Added
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            - 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).
         | 
| 14 | 
            +
            - 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).
         | 
| 15 | 
            +
            - Introduced the `uk_header_flag` boolean configuration key. Platforms partnered with Mangopay's UK entity should set this key to true for proper configuration.
         | 
| 16 | 
            +
             | 
| 1 17 | 
             
            ## [3.22.0] - 2024-02-08
         | 
| 2 18 | 
             
            ### Added
         | 
| 3 19 |  | 
| @@ -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
         | 
    
        data/lib/mangopay/pay_in.rb
    CHANGED
    
    | @@ -21,6 +21,7 @@ module MangoPay | |
| 21 21 | 
             
                  # See http://docs.mangopay.com/api-references/payins/payins-card-web/
         | 
| 22 22 | 
             
                  class Web < Resource
         | 
| 23 23 | 
             
                    include HTTPCalls::Create
         | 
| 24 | 
            +
             | 
| 24 25 | 
             
                    def self.url(*)
         | 
| 25 26 | 
             
                      "#{MangoPay.api_path}/payins/card/#{CGI.escape(class_name.downcase)}"
         | 
| 26 27 | 
             
                    end
         | 
| @@ -40,6 +41,7 @@ module MangoPay | |
| 40 41 | 
             
                  # See http://docs.mangopay.com/api-references/payins/payindirectcard/
         | 
| 41 42 | 
             
                  class Direct < Resource
         | 
| 42 43 | 
             
                    include HTTPCalls::Create
         | 
| 44 | 
            +
             | 
| 43 45 | 
             
                    def self.url(*)
         | 
| 44 46 | 
             
                      "#{MangoPay.api_path}/payins/card/#{CGI.escape(class_name.downcase)}"
         | 
| 45 47 | 
             
                    end
         | 
| @@ -52,6 +54,7 @@ module MangoPay | |
| 52 54 | 
             
                  # See http://docs.mangopay.com/api-references/payins/preauthorized-payin/
         | 
| 53 55 | 
             
                  class Direct < Resource
         | 
| 54 56 | 
             
                    include HTTPCalls::Create
         | 
| 57 | 
            +
             | 
| 55 58 | 
             
                    def self.url(*)
         | 
| 56 59 | 
             
                      "#{MangoPay.api_path}/payins/preauthorized/direct"
         | 
| 57 60 | 
             
                    end
         | 
| @@ -68,6 +71,7 @@ module MangoPay | |
| 68 71 | 
             
                  # See http://docs.mangopay.com/api-references/payins/payinbankwire/
         | 
| 69 72 | 
             
                  class Direct < Resource
         | 
| 70 73 | 
             
                    include HTTPCalls::Create
         | 
| 74 | 
            +
             | 
| 71 75 | 
             
                    def self.url(*)
         | 
| 72 76 | 
             
                      "#{MangoPay.api_path}/payins/bankwire/direct"
         | 
| 73 77 | 
             
                    end
         | 
| @@ -83,6 +87,7 @@ module MangoPay | |
| 83 87 | 
             
                  # See http://docs.mangopay.com/api-references/payins/direct-debit-pay-in-web/
         | 
| 84 88 | 
             
                  class Web < Resource
         | 
| 85 89 | 
             
                    include HTTPCalls::Create
         | 
| 90 | 
            +
             | 
| 86 91 | 
             
                    def self.url(*)
         | 
| 87 92 | 
             
                      "#{MangoPay.api_path}/payins/directdebit/#{CGI.escape(class_name.downcase)}"
         | 
| 88 93 | 
             
                    end
         | 
| @@ -91,6 +96,7 @@ module MangoPay | |
| 91 96 | 
             
                  # See https://docs.mangopay.com/api-references/payins/direct-debit-pay-in-direct/
         | 
| 92 97 | 
             
                  class Direct < Resource
         | 
| 93 98 | 
             
                    include HTTPCalls::Create
         | 
| 99 | 
            +
             | 
| 94 100 | 
             
                    def self.url(*)
         | 
| 95 101 | 
             
                      "#{MangoPay.api_path}/payins/directdebit/#{CGI.escape(class_name.downcase)}"
         | 
| 96 102 | 
             
                    end
         | 
| @@ -105,6 +111,7 @@ module MangoPay | |
| 105 111 | 
             
                  # Please use the 'create_v2' function - MangoPay::PayIn::PayPal::Web.create_new(params)
         | 
| 106 112 | 
             
                  class Web < Resource
         | 
| 107 113 | 
             
                    include HTTPCalls::Create
         | 
| 114 | 
            +
             | 
| 108 115 | 
             
                    def self.url(*)
         | 
| 109 116 | 
             
                      "#{MangoPay.api_path}/payins/paypal/#{CGI.escape(class_name.downcase)}"
         | 
| 110 117 | 
             
                    end
         | 
| @@ -112,6 +119,14 @@ module MangoPay | |
| 112 119 | 
             
                    def self.create_v2(params, idempotency_key = nil)
         | 
| 113 120 | 
             
                      MangoPay.request(:post, "#{MangoPay.api_path}/payins/payment-methods/paypal", params, {}, idempotency_key)
         | 
| 114 121 | 
             
                    end
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                    # Add tracking information to a PayPal PayIn (add the tracking number and carrier for LineItems shipments.)
         | 
| 124 | 
            +
                    # Caution – Tracking information cannot be edited
         | 
| 125 | 
            +
                    # You can’t modify the TrackingNumber, Carrier, or NotifyBuyer once added.
         | 
| 126 | 
            +
                    # You can only send a unique tracking number once.
         | 
| 127 | 
            +
                    def self.add_paypal_tracking_information(pay_in_id, params, idempotency_key = nil)
         | 
| 128 | 
            +
                      MangoPay.request(:put, "#{MangoPay.api_path}/payins/#{pay_in_id}/trackings", params, {}, idempotency_key)
         | 
| 129 | 
            +
                    end
         | 
| 115 130 | 
             
                  end
         | 
| 116 131 |  | 
| 117 132 | 
             
                end
         | 
| @@ -120,6 +135,7 @@ module MangoPay | |
| 120 135 |  | 
| 121 136 | 
             
                  class Web < Resource
         | 
| 122 137 | 
             
                    include HTTPCalls::Create
         | 
| 138 | 
            +
             | 
| 123 139 | 
             
                    def self.url(*)
         | 
| 124 140 | 
             
                      "#{MangoPay.api_path}/payins/payconiq/#{CGI.escape(class_name.downcase)}"
         | 
| 125 141 | 
             
                    end
         | 
    
        data/lib/mangopay/version.rb
    CHANGED
    
    
    
        data/lib/mangopay.rb
    CHANGED
    
    | @@ -44,7 +44,7 @@ module MangoPay | |
| 44 44 | 
             
              autoload :Ubo, 'mangopay/ubo'
         | 
| 45 45 | 
             
              autoload :Regulatory, 'mangopay/regulatory'
         | 
| 46 46 | 
             
              autoload :Deposit, 'mangopay/deposit'
         | 
| 47 | 
            -
              autoload : | 
| 47 | 
            +
              autoload :Conversion, 'mangopay/conversion'
         | 
| 48 48 | 
             
              autoload :PaymentMethodMetadata, 'mangopay/payment_method_metadata'
         | 
| 49 49 |  | 
| 50 50 | 
             
              # temporary
         | 
| @@ -57,7 +57,7 @@ module MangoPay | |
| 57 57 | 
             
                              :client_id, :client_apiKey,
         | 
| 58 58 | 
             
                              :temp_dir, :log_file, :http_timeout,
         | 
| 59 59 | 
             
                              :http_max_retries, :http_open_timeout,
         | 
| 60 | 
            -
                              :logger, :use_ssl
         | 
| 60 | 
            +
                              :logger, :use_ssl, :uk_header_flag
         | 
| 61 61 |  | 
| 62 62 | 
             
                def apply_configuration
         | 
| 63 63 | 
             
                  MangoPay.configure do |config|
         | 
| @@ -70,6 +70,7 @@ module MangoPay | |
| 70 70 | 
             
                    config.http_open_timeout = @http_open_timeout
         | 
| 71 71 | 
             
                    config.use_ssl = @use_ssl
         | 
| 72 72 | 
             
                    config.logger = @logger
         | 
| 73 | 
            +
                    config.uk_header_flag = @uk_header_flag
         | 
| 73 74 | 
             
                  end
         | 
| 74 75 | 
             
                end
         | 
| 75 76 |  | 
| @@ -100,6 +101,10 @@ module MangoPay | |
| 100 101 |  | 
| 101 102 | 
             
                  true
         | 
| 102 103 | 
             
                end
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                def uk_header_flag
         | 
| 106 | 
            +
                  @uk_header_flag || false
         | 
| 107 | 
            +
                end
         | 
| 103 108 | 
             
              end
         | 
| 104 109 |  | 
| 105 110 | 
             
              class << self
         | 
| @@ -193,6 +198,10 @@ module MangoPay | |
| 193 198 | 
             
                    headers['Idempotency-Key'] = headers_or_idempotency_key if headers_or_idempotency_key != nil
         | 
| 194 199 | 
             
                  end
         | 
| 195 200 |  | 
| 201 | 
            +
                  if configuration.uk_header_flag
         | 
| 202 | 
            +
                    headers['x-tenant-id'] = 'uk'
         | 
| 203 | 
            +
                  end
         | 
| 204 | 
            +
             | 
| 196 205 | 
             
                  res = Net::HTTP.start(uri.host, uri.port, :use_ssl => configuration.use_ssl?, :read_timeout => configuration.http_timeout,
         | 
| 197 206 | 
             
                                        :max_retries => configuration.http_max_retries,
         | 
| 198 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
         | 
| @@ -898,7 +898,7 @@ shared_context 'instant_conversion' do | |
| 898 898 | 
             
              include_context 'payins'
         | 
| 899 899 |  | 
| 900 900 | 
             
              def get_conversion_rate(debited_currency, credited_currency)
         | 
| 901 | 
            -
                MangoPay:: | 
| 901 | 
            +
                MangoPay::Conversion.get_rate(debited_currency, credited_currency, params = {})
         | 
| 902 902 | 
             
              end
         | 
| 903 903 |  | 
| 904 904 | 
             
              def create_instant_conversion()
         | 
| @@ -910,7 +910,7 @@ shared_context 'instant_conversion' do | |
| 910 910 | 
             
                  Tag: 'Test wallet'
         | 
| 911 911 | 
             
                )
         | 
| 912 912 |  | 
| 913 | 
            -
                MangoPay:: | 
| 913 | 
            +
                MangoPay::Conversion.create_instant_conversion(
         | 
| 914 914 | 
             
                  AuthorId: user['Id'],
         | 
| 915 915 | 
             
                  CreditedWalletId: credited_wallet['Id'],
         | 
| 916 916 | 
             
                  DebitedWalletId: new_wallet_with_money['Id'],
         | 
| @@ -921,12 +921,48 @@ shared_context 'instant_conversion' do | |
| 921 921 | 
             
                    Currency: 'EUR',
         | 
| 922 922 | 
             
                    Amount: 79
         | 
| 923 923 | 
             
                  },
         | 
| 924 | 
            +
                  Fees: {
         | 
| 925 | 
            +
                    Currency: 'EUR',
         | 
| 926 | 
            +
                    Amount: 9
         | 
| 927 | 
            +
                  },
         | 
| 924 928 | 
             
                  Tag: 'Instant conversion test'
         | 
| 925 929 | 
             
                )
         | 
| 926 930 | 
             
              end
         | 
| 927 931 |  | 
| 928 | 
            -
              def  | 
| 929 | 
            -
                 | 
| 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 = {})
         | 
| 930 966 | 
             
              end
         | 
| 931 967 | 
             
            end
         | 
| 932 968 |  | 
    
        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. | 
| 4 | 
            +
              version: 3.24.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-02 | 
| 12 | 
            +
            date: 2024-04-02 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
         | 
| @@ -118,6 +118,7 @@ files: | |
| 118 118 | 
             
            - spec/mangopay/client_spec.png
         | 
| 119 119 | 
             
            - spec/mangopay/client_spec.rb
         | 
| 120 120 | 
             
            - spec/mangopay/configuration_spec.rb
         | 
| 121 | 
            +
            - spec/mangopay/conversion_spec.rb
         | 
| 121 122 | 
             
            - spec/mangopay/deposit_spec.rb
         | 
| 122 123 | 
             
            - spec/mangopay/dispute_spec.png
         | 
| 123 124 | 
             
            - spec/mangopay/dispute_spec.rb
         | 
| @@ -125,7 +126,6 @@ files: | |
| 125 126 | 
             
            - spec/mangopay/fetch_filters_spec.rb
         | 
| 126 127 | 
             
            - spec/mangopay/hook_spec.rb
         | 
| 127 128 | 
             
            - spec/mangopay/idempotency_spec.rb
         | 
| 128 | 
            -
            - spec/mangopay/instant_conversion_spec.rb
         | 
| 129 129 | 
             
            - spec/mangopay/kyc_document_spec.png
         | 
| 130 130 | 
             
            - spec/mangopay/kyc_document_spec.rb
         | 
| 131 131 | 
             
            - spec/mangopay/log_requests_filter_spec.rb
         | 
| @@ -196,6 +196,7 @@ test_files: | |
| 196 196 | 
             
            - spec/mangopay/client_spec.png
         | 
| 197 197 | 
             
            - spec/mangopay/client_spec.rb
         | 
| 198 198 | 
             
            - spec/mangopay/configuration_spec.rb
         | 
| 199 | 
            +
            - spec/mangopay/conversion_spec.rb
         | 
| 199 200 | 
             
            - spec/mangopay/deposit_spec.rb
         | 
| 200 201 | 
             
            - spec/mangopay/dispute_spec.png
         | 
| 201 202 | 
             
            - spec/mangopay/dispute_spec.rb
         | 
| @@ -203,7 +204,6 @@ test_files: | |
| 203 204 | 
             
            - spec/mangopay/fetch_filters_spec.rb
         | 
| 204 205 | 
             
            - spec/mangopay/hook_spec.rb
         | 
| 205 206 | 
             
            - spec/mangopay/idempotency_spec.rb
         | 
| 206 | 
            -
            - spec/mangopay/instant_conversion_spec.rb
         | 
| 207 207 | 
             
            - spec/mangopay/kyc_document_spec.png
         | 
| 208 208 | 
             
            - spec/mangopay/kyc_document_spec.rb
         | 
| 209 209 | 
             
            - spec/mangopay/log_requests_filter_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
         |