bambora-client 0.6.0 → 0.7.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/.editorconfig +10 -0
- data/.github/workflows/gempush.yml +2 -2
- data/.github/workflows/linter.yml +2 -4
- data/.github/workflows/ruby.yml +3 -5
- data/.rubocop.yml +4 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +9 -0
- data/bambora-client.gemspec +8 -8
- data/lib/bambora/adapters/query_string_response.rb +1 -1
- data/lib/bambora/bank/adapters/payment_profile_response.rb +2 -2
- data/lib/bambora/bank/batch_report_resource.rb +3 -5
- data/lib/bambora/bank/builders/payment_profile_params.rb +2 -2
- data/lib/bambora/client/version.rb +1 -1
- data/lib/bambora/client.rb +2 -1
- data/lib/bambora/credentials.rb +12 -0
- data/lib/bambora/rest/json_client.rb +1 -1
- metadata +21 -20
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8f352f6b69779ed40aec8656bac2ef2ab59e3f9f2c449ded71fd2b927521f33b
         | 
| 4 | 
            +
              data.tar.gz: d156be5c5a47ea734231bde86e1664b21f2f1ee9abdb5334b0c416d3f2139259
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f683ea503ba51055b1526f97f893d83a87f75f336b4deedd09b779a6b739194a31cc8d280c66cf0be4576a356ddf9e48263bc42fdae52ee684452015a931f7ef
         | 
| 7 | 
            +
              data.tar.gz: 3700fddc9d722bbbe240f3df94d2aab8ffd7f6a800fa62245993e04c45207d48f32370224cd3d9c7ebd664ed5c0da8d5b57af4d76a06cef992e2767c49018c01
         | 
    
        data/.editorconfig
    ADDED
    
    
| @@ -18,9 +18,7 @@ jobs: | |
| 18 18 | 
             
                      ${{ runner.os }}-gem-
         | 
| 19 19 | 
             
                - name: Setup ruby
         | 
| 20 20 | 
             
                  uses: ruby/setup-ruby@v1
         | 
| 21 | 
            -
                -  | 
| 22 | 
            -
             | 
| 23 | 
            -
                    bundle config path vendor/bundle
         | 
| 24 | 
            -
                    bundle install --jobs 4 --retry 3
         | 
| 21 | 
            +
                - name: Install dependencies
         | 
| 22 | 
            +
                  run: bundle install
         | 
| 25 23 | 
             
                - name: Rubocop checks
         | 
| 26 24 | 
             
                  run: bundle exec rubocop
         | 
    
        data/.github/workflows/ruby.yml
    CHANGED
    
    | @@ -8,7 +8,7 @@ jobs: | |
| 8 8 | 
             
                runs-on: ubuntu-latest
         | 
| 9 9 | 
             
                strategy:
         | 
| 10 10 | 
             
                  matrix:
         | 
| 11 | 
            -
                    ruby: [' | 
| 11 | 
            +
                    ruby: ['3.0', '3.1', '3.2', '3.3']
         | 
| 12 12 | 
             
                name: Ruby ${{ matrix.ruby }} Test
         | 
| 13 13 | 
             
                steps:
         | 
| 14 14 | 
             
                  - uses: actions/checkout@master
         | 
| @@ -25,10 +25,8 @@ jobs: | |
| 25 25 | 
             
                    uses: ruby/setup-ruby@v1
         | 
| 26 26 | 
             
                    with:
         | 
| 27 27 | 
             
                      ruby-version: ${{ matrix.ruby }}
         | 
| 28 | 
            -
                  -  | 
| 29 | 
            -
             | 
| 30 | 
            -
                      bundle config path vendor/bundle
         | 
| 31 | 
            -
                      bundle install --jobs 4 --retry 3
         | 
| 28 | 
            +
                  - name: Install dependencies
         | 
| 29 | 
            +
                    run: bundle install
         | 
| 32 30 | 
             
                  - name: Run Tests
         | 
| 33 31 | 
             
                    run: |
         | 
| 34 32 | 
             
                      bundle exec rake spec
         | 
    
        data/.rubocop.yml
    CHANGED
    
    
    
        data/.ruby-version
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            3.0.5
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,12 @@ | |
| 1 | 
            +
            ## 0.7.0 (2024-02-06)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            - Drop support for Ruby 2
         | 
| 4 | 
            +
            - Updating minimum Ruby version to Ruby 3.0.5
         | 
| 5 | 
            +
            - Add test support for Ruby 3.1, 3.2, 3.3
         | 
| 6 | 
            +
            - Updated Rubocop to enforce 3.0.x conventions
         | 
| 7 | 
            +
            - Linting fixes
         | 
| 8 | 
            +
            - Update `BatchReportResource#batch_report_body` to allow `sub merchant id` to be received from `Bambora::Client` or `elements`
         | 
| 9 | 
            +
             | 
| 1 10 | 
             
            ## 0.6.0 (2023-05-02)
         | 
| 2 11 |  | 
| 3 12 | 
             
            - Updating minimum Ruby version to Ruby 2.7.7
         | 
    
        data/bambora-client.gemspec
    CHANGED
    
    | @@ -6,8 +6,8 @@ require 'bambora/client/version' | |
| 6 6 | 
             
            Gem::Specification.new do |spec|
         | 
| 7 7 | 
             
              spec.name          = 'bambora-client'
         | 
| 8 8 | 
             
              spec.version       = Bambora::Client::VERSION
         | 
| 9 | 
            -
              spec.authors       = [' | 
| 10 | 
            -
              spec.email         = [' | 
| 9 | 
            +
              spec.authors       = ['HiMama']
         | 
| 10 | 
            +
              spec.email         = ['tech@himama.com']
         | 
| 11 11 |  | 
| 12 12 | 
             
              spec.summary       = 'A thread-safe client for the Bambora/Beanstream API.'
         | 
| 13 13 | 
             
              spec.description   = 'The official beanstream-ruby gem is not thread-safe. This thread-safe client works in '\
         | 
| @@ -37,20 +37,20 @@ Gem::Specification.new do |spec| | |
| 37 37 | 
             
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         | 
| 38 38 | 
             
              spec.require_paths = ['lib']
         | 
| 39 39 |  | 
| 40 | 
            -
              spec.required_ruby_version = '>=  | 
| 40 | 
            +
              spec.required_ruby_version = '>= 3.0.5'
         | 
| 41 41 |  | 
| 42 42 | 
             
              spec.add_dependency 'faraday', '~> 2.0.1'
         | 
| 43 | 
            -
              spec.add_dependency 'faraday-excon'
         | 
| 44 | 
            -
              spec.add_dependency 'faraday-multipart'
         | 
| 43 | 
            +
              spec.add_dependency 'faraday-excon', '~> 2.1.0'
         | 
| 44 | 
            +
              spec.add_dependency 'faraday-multipart', '~> 1.0.0'
         | 
| 45 45 | 
             
              spec.add_dependency 'gyoku', '~> 1.0'
         | 
| 46 46 | 
             
              spec.add_dependency 'multiparty', '~> 0'
         | 
| 47 47 |  | 
| 48 48 | 
             
              spec.add_development_dependency 'bundler', '~> 2'
         | 
| 49 | 
            -
              spec.add_development_dependency 'pry', '~> 0. | 
| 50 | 
            -
              spec.add_development_dependency 'pry-byebug', '~> 3. | 
| 49 | 
            +
              spec.add_development_dependency 'pry', '~> 0.14.0'
         | 
| 50 | 
            +
              spec.add_development_dependency 'pry-byebug', '~> 3.8.0'
         | 
| 51 51 | 
             
              spec.add_development_dependency 'rake', '~> 13.0'
         | 
| 52 52 | 
             
              spec.add_development_dependency 'rspec', '~> 3.0'
         | 
| 53 53 | 
             
              spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
         | 
| 54 | 
            -
              spec.add_development_dependency 'rubocop', '~>  | 
| 54 | 
            +
              spec.add_development_dependency 'rubocop', '~> 1.12.0'
         | 
| 55 55 | 
             
              spec.add_development_dependency 'webmock', '~> 3.7'
         | 
| 56 56 | 
             
            end
         | 
| @@ -8,7 +8,7 @@ module Bambora | |
| 8 8 | 
             
                  parsed_response = super
         | 
| 9 9 | 
             
                  return error_response if parsed_response.values.flatten.empty? # We didn't get a query string back.
         | 
| 10 10 |  | 
| 11 | 
            -
                  parsed_response. | 
| 11 | 
            +
                  parsed_response.transform_values { |val| val.length == 1 ? val.first : val }
         | 
| 12 12 | 
             
                end
         | 
| 13 13 |  | 
| 14 14 | 
             
                private
         | 
| @@ -56,16 +56,14 @@ module Bambora | |
| 56 56 | 
             
                    response = client.post(path: sub_path, body: batch_report_body(report_data))
         | 
| 57 57 |  | 
| 58 58 | 
             
                    response = ensure_record_key_exists(response)
         | 
| 59 | 
            -
                     | 
| 60 | 
            -
             | 
| 61 | 
            -
                    response
         | 
| 59 | 
            +
                    add_messages_to_response(response)
         | 
| 62 60 | 
             
                  end
         | 
| 63 61 |  | 
| 64 62 | 
             
                  private
         | 
| 65 63 |  | 
| 66 64 | 
             
                  def ensure_record_key_exists(response)
         | 
| 67 65 | 
             
                    # bambora can return null or empty record results, fill it in for consistency
         | 
| 68 | 
            -
                    response | 
| 66 | 
            +
                    response[:response][:record] = [] if response.dig(:response, :record).nil?
         | 
| 69 67 |  | 
| 70 68 | 
             
                    response
         | 
| 71 69 | 
             
                  end
         | 
| @@ -83,7 +81,7 @@ module Bambora | |
| 83 81 | 
             
                      merchant_id: client.merchant_id,
         | 
| 84 82 | 
             
                      pass_code: api_key,
         | 
| 85 83 | 
             
                      sub_merchant_id: client.sub_merchant_id,
         | 
| 86 | 
            -
                    )
         | 
| 84 | 
            +
                    ).compact
         | 
| 87 85 | 
             
                  end
         | 
| 88 86 | 
             
                end
         | 
| 89 87 | 
             
              end
         | 
    
        data/lib/bambora/client.rb
    CHANGED
    
    | @@ -12,6 +12,7 @@ require 'gyoku' # XML Builder | |
| 12 12 | 
             
            require 'multiparty' # Multipart/mixed requests
         | 
| 13 13 |  | 
| 14 14 | 
             
            require 'bambora/client/version'
         | 
| 15 | 
            +
            require 'bambora/credentials'
         | 
| 15 16 |  | 
| 16 17 | 
             
            # Adapters
         | 
| 17 18 | 
             
            require 'bambora/adapters/response'
         | 
| @@ -163,7 +164,7 @@ module Bambora | |
| 163 164 | 
             
                #
         | 
| 164 165 | 
             
                # @param api_key [String] API key for the bank profiles endpoint.
         | 
| 165 166 | 
             
                #
         | 
| 166 | 
            -
                # @return [Bambora::Bank:: | 
| 167 | 
            +
                # @return [Bambora::Bank::BatchReportResource]
         | 
| 167 168 | 
             
                def batch_reports(api_key:)
         | 
| 168 169 | 
             
                  @batch_reports = Bambora::Bank::BatchReportResource.new(
         | 
| 169 170 | 
             
                    client: xml_client,
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Bambora
         | 
| 4 | 
            +
              class Credentials
         | 
| 5 | 
            +
                attr_reader :merchant_id, :reporting_passcode
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                def initialize(options = {})
         | 
| 8 | 
            +
                  @merchant_id = options[:merchant_id]
         | 
| 9 | 
            +
                  @reporting_passcode = options[:reporting_passcode]
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
            end
         | 
| @@ -30,7 +30,7 @@ module Bambora | |
| 30 30 | 
             
                  # @param api_key [String] Indicating the API Key to be used with the request.
         | 
| 31 31 | 
             
                  #
         | 
| 32 32 | 
             
                  # @return [Hash] Indicating success or failure of the operation.
         | 
| 33 | 
            -
                  def get(path:, params: nil | 
| 33 | 
            +
                  def get(path:, api_key:, params: nil)
         | 
| 34 34 | 
             
                    parse_response_body(
         | 
| 35 35 | 
             
                      super(path: path, params: params, headers: build_headers(api_key: api_key)),
         | 
| 36 36 | 
             
                    ).to_h
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: bambora-client
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.7.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 | 
            -
            -  | 
| 7 | 
            +
            - HiMama
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2024-02-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: faraday
         | 
| @@ -28,30 +28,30 @@ dependencies: | |
| 28 28 | 
             
              name: faraday-excon
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - - " | 
| 31 | 
            +
                - - "~>"
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version:  | 
| 33 | 
            +
                    version: 2.1.0
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - - " | 
| 38 | 
            +
                - - "~>"
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version:  | 
| 40 | 
            +
                    version: 2.1.0
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: faraday-multipart
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - - " | 
| 45 | 
            +
                - - "~>"
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version:  | 
| 47 | 
            +
                    version: 1.0.0
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - - " | 
| 52 | 
            +
                - - "~>"
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 54 | 
            +
                    version: 1.0.0
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: gyoku
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -100,28 +100,28 @@ dependencies: | |
| 100 100 | 
             
                requirements:
         | 
| 101 101 | 
             
                - - "~>"
         | 
| 102 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            -
                    version: 0. | 
| 103 | 
            +
                    version: 0.14.0
         | 
| 104 104 | 
             
              type: :development
         | 
| 105 105 | 
             
              prerelease: false
         | 
| 106 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 107 | 
             
                requirements:
         | 
| 108 108 | 
             
                - - "~>"
         | 
| 109 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            -
                    version: 0. | 
| 110 | 
            +
                    version: 0.14.0
         | 
| 111 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 112 112 | 
             
              name: pry-byebug
         | 
| 113 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 114 | 
             
                requirements:
         | 
| 115 115 | 
             
                - - "~>"
         | 
| 116 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            -
                    version:  | 
| 117 | 
            +
                    version: 3.8.0
         | 
| 118 118 | 
             
              type: :development
         | 
| 119 119 | 
             
              prerelease: false
         | 
| 120 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 121 | 
             
                requirements:
         | 
| 122 122 | 
             
                - - "~>"
         | 
| 123 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            -
                    version:  | 
| 124 | 
            +
                    version: 3.8.0
         | 
| 125 125 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 126 126 | 
             
              name: rake
         | 
| 127 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -170,14 +170,14 @@ dependencies: | |
| 170 170 | 
             
                requirements:
         | 
| 171 171 | 
             
                - - "~>"
         | 
| 172 172 | 
             
                  - !ruby/object:Gem::Version
         | 
| 173 | 
            -
                    version:  | 
| 173 | 
            +
                    version: 1.12.0
         | 
| 174 174 | 
             
              type: :development
         | 
| 175 175 | 
             
              prerelease: false
         | 
| 176 176 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 177 177 | 
             
                requirements:
         | 
| 178 178 | 
             
                - - "~>"
         | 
| 179 179 | 
             
                  - !ruby/object:Gem::Version
         | 
| 180 | 
            -
                    version:  | 
| 180 | 
            +
                    version: 1.12.0
         | 
| 181 181 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 182 182 | 
             
              name: webmock
         | 
| 183 183 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -195,12 +195,12 @@ dependencies: | |
| 195 195 | 
             
            description: The official beanstream-ruby gem is not thread-safe. This thread-safe
         | 
| 196 196 | 
             
              client works in environments like Sidekiq and Puma.
         | 
| 197 197 | 
             
            email:
         | 
| 198 | 
            -
            - hello@cassidy.codes
         | 
| 199 198 | 
             
            - tech@himama.com
         | 
| 200 199 | 
             
            executables: []
         | 
| 201 200 | 
             
            extensions: []
         | 
| 202 201 | 
             
            extra_rdoc_files: []
         | 
| 203 202 | 
             
            files:
         | 
| 203 | 
            +
            - ".editorconfig"
         | 
| 204 204 | 
             
            - ".github/workflows/gempush.yml"
         | 
| 205 205 | 
             
            - ".github/workflows/linter.yml"
         | 
| 206 206 | 
             
            - ".github/workflows/ruby.yml"
         | 
| @@ -232,6 +232,7 @@ files: | |
| 232 232 | 
             
            - lib/bambora/builders/xml_request_body.rb
         | 
| 233 233 | 
             
            - lib/bambora/client.rb
         | 
| 234 234 | 
             
            - lib/bambora/client/version.rb
         | 
| 235 | 
            +
            - lib/bambora/credentials.rb
         | 
| 235 236 | 
             
            - lib/bambora/factories/response_adapter_factory.rb
         | 
| 236 237 | 
             
            - lib/bambora/rest/batch_payment_file_upload_client.rb
         | 
| 237 238 | 
             
            - lib/bambora/rest/client.rb
         | 
| @@ -257,14 +258,14 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 257 258 | 
             
              requirements:
         | 
| 258 259 | 
             
              - - ">="
         | 
| 259 260 | 
             
                - !ruby/object:Gem::Version
         | 
| 260 | 
            -
                  version:  | 
| 261 | 
            +
                  version: 3.0.5
         | 
| 261 262 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 262 263 | 
             
              requirements:
         | 
| 263 264 | 
             
              - - ">="
         | 
| 264 265 | 
             
                - !ruby/object:Gem::Version
         | 
| 265 266 | 
             
                  version: '0'
         | 
| 266 267 | 
             
            requirements: []
         | 
| 267 | 
            -
            rubygems_version: 3. | 
| 268 | 
            +
            rubygems_version: 3.5.3
         | 
| 268 269 | 
             
            signing_key: 
         | 
| 269 270 | 
             
            specification_version: 4
         | 
| 270 271 | 
             
            summary: A thread-safe client for the Bambora/Beanstream API.
         |