finapps_core 2.0.5 → 2.0.6
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/Gemfile.lock +3 -3
- data/finapps_core.gemspec +12 -12
- data/lib/finapps_core/middleware/request/tenant_authentication.rb +2 -2
- data/lib/finapps_core/rest/base_client.rb +5 -1
- data/lib/finapps_core/rest/configuration.rb +9 -6
- data/lib/finapps_core/rest/connection.rb +1 -1
- data/lib/finapps_core/version.rb +1 -1
- data/spec/middleware/request/no_encoding_basic_authentication_spec.rb +9 -13
- data/spec/middleware/request/tenant_authentication_spec.rb +2 -6
- data/spec/rest/base_client_spec.rb +1 -4
- data/spec/utils/parameter_filter_spec.rb +17 -5
- metadata +6 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d572a8ff17d98bcb1ce97450aabb466546643c43
         | 
| 4 | 
            +
              data.tar.gz: a817625334d11a4913d77dbc5301525ac652416b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7cc72f84ff5c4f4051d56f8a8a59d6313c3516b1541287ca438f04af2658e2c5056bb41845dbbd10a173fd5df9e594ebeb3acb50b4e99fb3949a88f6b53b3d65
         | 
| 7 | 
            +
              data.tar.gz: abbde216bd6238f0ebd250ece49ffc7265746baa786635c5cdd14c26eee6de4848073eb5181786c661b64e143196f7ab719a2c5cbca85b88bff07f9c79fc56ec
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,9 +1,9 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                finapps_core (2.0. | 
| 4 | 
            +
                finapps_core (2.0.5)
         | 
| 5 5 | 
             
                  faraday (~> 0.11, >= 0.11.0)
         | 
| 6 | 
            -
                  faraday_middleware (~> 0.11, >= 0.11.0)
         | 
| 6 | 
            +
                  faraday_middleware (~> 0.11, >= 0.11.0.1)
         | 
| 7 7 | 
             
                  rash (~> 0.4, >= 0.4.0)
         | 
| 8 8 | 
             
                  typhoeus (~> 1.1, >= 1.1.2)
         | 
| 9 9 |  | 
| @@ -87,7 +87,7 @@ DEPENDENCIES | |
| 87 87 | 
             
              bundler (~> 1.14, >= 1.14.3)
         | 
| 88 88 | 
             
              codeclimate-test-reporter (~> 1.0, >= 1.0.5)
         | 
| 89 89 | 
             
              finapps_core!
         | 
| 90 | 
            -
              rake (~> 12.0 | 
| 90 | 
            +
              rake (~> 12.0, >= 12.0.0)
         | 
| 91 91 | 
             
              rspec (~> 3.5, >= 3.5.0)
         | 
| 92 92 | 
             
              rubocop (~> 0.47, >= 0.47.1)
         | 
| 93 93 | 
             
              simplecov (~> 0.11, >= 0.11.2)
         | 
    
        data/finapps_core.gemspec
    CHANGED
    
    | @@ -20,19 +20,19 @@ Gem::Specification.new do |spec| | |
| 20 20 | 
             
              spec.test_files = Dir['spec/**/*.rb']
         | 
| 21 21 | 
             
              spec.require_paths = ['lib']
         | 
| 22 22 |  | 
| 23 | 
            -
              spec.add_runtime_dependency 'faraday', | 
| 24 | 
            -
              spec.add_runtime_dependency 'faraday_middleware', | 
| 25 | 
            -
              spec.add_runtime_dependency 'typhoeus', | 
| 26 | 
            -
              spec.add_runtime_dependency 'rash', | 
| 23 | 
            +
              spec.add_runtime_dependency 'faraday',                        '~> 0.11',  '>= 0.11.0'
         | 
| 24 | 
            +
              spec.add_runtime_dependency 'faraday_middleware',             '~> 0.11',  '>= 0.11.0.1'
         | 
| 25 | 
            +
              spec.add_runtime_dependency 'typhoeus',                       '~> 1.1',   '>= 1.1.2'
         | 
| 26 | 
            +
              spec.add_runtime_dependency 'rash',                           '~> 0.4',   '>= 0.4.0'
         | 
| 27 27 |  | 
| 28 | 
            -
              spec.add_development_dependency 'bundler', | 
| 29 | 
            -
              spec.add_development_dependency 'rake', | 
| 30 | 
            -
              spec.add_development_dependency 'rspec', | 
| 31 | 
            -
              spec.add_development_dependency 'webmock', | 
| 32 | 
            -
              spec.add_development_dependency 'sinatra', | 
| 33 | 
            -
              spec.add_development_dependency 'simplecov', | 
| 34 | 
            -
              spec.add_development_dependency 'codeclimate-test-reporter', | 
| 35 | 
            -
              spec.add_development_dependency 'rubocop', | 
| 28 | 
            +
              spec.add_development_dependency 'bundler',                    '~> 1.14',  '>= 1.14.3'
         | 
| 29 | 
            +
              spec.add_development_dependency 'rake',                       '~> 12.0',  '>= 12.0.0'
         | 
| 30 | 
            +
              spec.add_development_dependency 'rspec',                      '~> 3.5',   '>= 3.5.0'
         | 
| 31 | 
            +
              spec.add_development_dependency 'webmock',                    '~> 2.3',   '>= 2.3.2'
         | 
| 32 | 
            +
              spec.add_development_dependency 'sinatra',                    '~> 1.4',   '>= 1.4.7'
         | 
| 33 | 
            +
              spec.add_development_dependency 'simplecov',                  '~> 0.11',  '>= 0.11.2'
         | 
| 34 | 
            +
              spec.add_development_dependency 'codeclimate-test-reporter',  '~> 1.0',   '>= 1.0.5'
         | 
| 35 | 
            +
              spec.add_development_dependency 'rubocop',                    '~> 0.47',  '>= 0.47.1'
         | 
| 36 36 |  | 
| 37 37 | 
             
              spec.extra_rdoc_files = %w(README.md LICENSE)
         | 
| 38 38 | 
             
              spec.rdoc_options = %w(--line-numbers --inline-source --title finapps-ruby-core --main README.md)
         | 
| @@ -6,9 +6,9 @@ module FinAppsCore | |
| 6 6 | 
             
                class TenantAuthentication < Faraday::Middleware
         | 
| 7 7 | 
             
                  KEY = 'X-FinApps-Token' unless defined? KEY
         | 
| 8 8 |  | 
| 9 | 
            -
                  def initialize(app,  | 
| 9 | 
            +
                  def initialize(app, token)
         | 
| 10 10 | 
             
                    super(app)
         | 
| 11 | 
            -
                    @header_value =  | 
| 11 | 
            +
                    @header_value = token.to_s.strip
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 |  | 
| 14 14 | 
             
                  def call(env)
         | 
| @@ -1,4 +1,8 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 | 
            +
            require_relative './configuration.rb'
         | 
| 3 | 
            +
            require_relative './connection.rb'
         | 
| 4 | 
            +
            require_relative '../utils/loggeable'
         | 
| 5 | 
            +
             | 
| 2 6 | 
             
            module FinAppsCore
         | 
| 3 7 | 
             
              module REST
         | 
| 4 8 | 
             
                # base client functionality
         | 
| @@ -11,7 +15,7 @@ module FinAppsCore | |
| 11 15 | 
             
                  attr_reader :config
         | 
| 12 16 |  | 
| 13 17 | 
             
                  def initialize(options, logger=nil)
         | 
| 14 | 
            -
                    @config = FinAppsCore::REST::Configuration.new options
         | 
| 18 | 
            +
                    @config = ::FinAppsCore::REST::Configuration.new options
         | 
| 15 19 | 
             
                    @logger = logger
         | 
| 16 20 | 
             
                  end
         | 
| 17 21 |  | 
| @@ -5,15 +5,14 @@ module FinAppsCore | |
| 5 5 | 
             
                class Configuration # :nodoc:
         | 
| 6 6 | 
             
                  using ObjectExtensions
         | 
| 7 7 |  | 
| 8 | 
            -
                  attr_accessor : | 
| 9 | 
            -
                                : | 
| 10 | 
            -
                                : | 
| 11 | 
            -
                                :proxy, :timeout, :retry_limit, :log_level
         | 
| 8 | 
            +
                  attr_accessor :tenant_token, :user_identifier, :user_token,
         | 
| 9 | 
            +
                                :host, :proxy, :timeout, :retry_limit,
         | 
| 10 | 
            +
                                :log_level
         | 
| 12 11 |  | 
| 13 12 | 
             
                  def initialize(options={})
         | 
| 14 | 
            -
                     | 
| 15 | 
            -
                    FinAppsCore::REST::Defaults::DEFAULTS.merge(non_nil_options)
         | 
| 13 | 
            +
                    FinAppsCore::REST::Defaults::DEFAULTS.merge(remove_empty_options(options))
         | 
| 16 14 | 
             
                                                         .each {|key, value| public_send("#{key}=", value) }
         | 
| 15 | 
            +
             | 
| 17 16 | 
             
                    raise FinAppsCore::InvalidArgumentsError.new "Invalid argument. {host: #{host}}" unless valid_host?
         | 
| 18 17 | 
             
                    raise FinAppsCore::InvalidArgumentsError.new "Invalid argument. {timeout: #{timeout}}" unless timeout.integer?
         | 
| 19 18 | 
             
                  end
         | 
| @@ -27,6 +26,10 @@ module FinAppsCore | |
| 27 26 | 
             
                  def valid_host?
         | 
| 28 27 | 
             
                    host.start_with?('http://', 'https://')
         | 
| 29 28 | 
             
                  end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                  def remove_empty_options(hash)
         | 
| 31 | 
            +
                    hash.select {|_, value| !value.nil? }
         | 
| 32 | 
            +
                  end
         | 
| 30 33 | 
             
                end
         | 
| 31 34 | 
             
              end
         | 
| 32 35 | 
             
            end
         | 
| @@ -13,7 +13,7 @@ module FinAppsCore | |
| 13 13 | 
             
                    Faraday.new(options) do |conn|
         | 
| 14 14 | 
             
                      conn.request :accept_json
         | 
| 15 15 | 
             
                      conn.request :user_agent
         | 
| 16 | 
            -
                      conn.request :tenant_authentication, config. | 
| 16 | 
            +
                      conn.request :tenant_authentication, config.tenant_token
         | 
| 17 17 | 
             
                      conn.request :json
         | 
| 18 18 | 
             
                      conn.request :retry
         | 
| 19 19 | 
             
                      conn.request :multipart
         | 
    
        data/lib/finapps_core/version.rb
    CHANGED
    
    
| @@ -1,31 +1,27 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 | 
             
            RSpec.describe FinAppsCore::Middleware::NoEncodingBasicAuthentication do
         | 
| 3 | 
            -
              let(:valid_credentials) { VALID_CREDENTIALS }
         | 
| 4 3 | 
             
              let(:key) { FinAppsCore::Middleware::NoEncodingBasicAuthentication::KEY }
         | 
| 5 4 |  | 
| 6 5 | 
             
              describe '#call' do
         | 
| 7 | 
            -
                 | 
| 6 | 
            +
                app = proc {|env| env }
         | 
| 8 7 |  | 
| 9 8 | 
             
                context 'when credentials were provided' do
         | 
| 10 | 
            -
                  let(:middleware)  | 
| 11 | 
            -
             | 
| 12 | 
            -
                  end
         | 
| 13 | 
            -
                  let(:expected_header) { "Basic #{valid_credentials[:token]}" }
         | 
| 9 | 
            +
                  let(:middleware) { FinAppsCore::Middleware::NoEncodingBasicAuthentication.new(app, VALID_CREDENTIALS[:token]) }
         | 
| 10 | 
            +
                  let(:expected_header_value) { "Basic #{VALID_CREDENTIALS[:token]}" }
         | 
| 14 11 |  | 
| 15 12 | 
             
                  context 'when header was not previously set' do
         | 
| 16 13 | 
             
                    let(:request_env) { {request_headers: {}} }
         | 
| 17 | 
            -
                    subject(: | 
| 14 | 
            +
                    subject(:result) { middleware.call(request_env) }
         | 
| 18 15 |  | 
| 19 | 
            -
                    it('generates a header') { expect( | 
| 16 | 
            +
                    it('generates a header') { expect(result[:request_headers][key]).to eq(expected_header_value) }
         | 
| 20 17 | 
             
                  end
         | 
| 21 18 |  | 
| 22 19 | 
             
                  context 'when header was previously set' do
         | 
| 23 | 
            -
                    let(: | 
| 24 | 
            -
                     | 
| 25 | 
            -
                    subject(:actual_header) { middleware.call(request_env)[:request_headers][key] }
         | 
| 20 | 
            +
                    let(:request_env) { {request_headers: {key => 'foo'}} }
         | 
| 21 | 
            +
                    subject(:result) { middleware.call(request_env) }
         | 
| 26 22 |  | 
| 27 | 
            -
                    it('does not override existing header') { expect( | 
| 28 | 
            -
                    it('does not generate a header') { expect( | 
| 23 | 
            +
                    it('does not override existing header') { expect(result[:request_headers][key]).to eq('foo') }
         | 
| 24 | 
            +
                    it('does not generate a header') { expect(result[:request_headers][key]).to_not eq(expected_header_value) }
         | 
| 29 25 | 
             
                  end
         | 
| 30 26 | 
             
                end
         | 
| 31 27 | 
             
              end
         | 
| @@ -7,12 +7,8 @@ RSpec.describe FinAppsCore::Middleware::TenantAuthentication do | |
| 7 7 | 
             
                fake_app = proc {|env| env }
         | 
| 8 8 |  | 
| 9 9 | 
             
                context 'when company credentials were provided' do
         | 
| 10 | 
            -
                  let(:middleware)  | 
| 11 | 
            -
             | 
| 12 | 
            -
                                                                      VALID_CREDENTIALS[:identifier],
         | 
| 13 | 
            -
                                                                      VALID_CREDENTIALS[:token])
         | 
| 14 | 
            -
                  end
         | 
| 15 | 
            -
                  let(:expected_header) { "#{valid_tenant_options[:identifier]}=#{valid_tenant_options[:token]}" }
         | 
| 10 | 
            +
                  let(:middleware) { FinAppsCore::Middleware::TenantAuthentication.new(fake_app, VALID_CREDENTIALS[:token]) }
         | 
| 11 | 
            +
                  let(:expected_header) { valid_tenant_options[:token] }
         | 
| 16 12 |  | 
| 17 13 | 
             
                  context 'when header was not previously set' do
         | 
| 18 14 | 
             
                    let(:request_env) { {request_headers: {}} }
         | 
| @@ -1,9 +1,6 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 | 
             
            RSpec.describe FinAppsCore::REST::BaseClient do
         | 
| 3 | 
            -
              let(:valid_tenant_options)  | 
| 4 | 
            -
                {tenant_identifier: VALID_CREDENTIALS[:identifier],
         | 
| 5 | 
            -
                 tenant_token: VALID_CREDENTIALS[:token]}
         | 
| 6 | 
            -
              end
         | 
| 3 | 
            +
              let(:valid_tenant_options) { {tenant_token: VALID_CREDENTIALS[:token]} }
         | 
| 7 4 | 
             
              subject { FinAppsCore::REST::BaseClient.new(valid_tenant_options) }
         | 
| 8 5 |  | 
| 9 6 | 
             
              RESPONSE = 0
         | 
| @@ -1,18 +1,30 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 | 
             
            class FakeClass
         | 
| 3 | 
            -
              include  | 
| 3 | 
            +
              include FinAppsCore::Utils::ParameterFilter
         | 
| 4 4 | 
             
            end
         | 
| 5 5 |  | 
| 6 6 | 
             
            RSpec.describe FinAppsCore::Utils::ParameterFilter do
         | 
| 7 7 | 
             
              describe '#skip_sensitive_data' do
         | 
| 8 8 | 
             
                context 'when provided with sensitive data' do
         | 
| 9 9 | 
             
                  let(:unfiltered_params) do
         | 
| 10 | 
            -
                    { | 
| 11 | 
            -
             | 
| 10 | 
            +
                    {
         | 
| 11 | 
            +
                      password: 'FinApps@123',
         | 
| 12 | 
            +
                      password_confirm: 'FinApps@123',
         | 
| 13 | 
            +
                      token: '123456',
         | 
| 14 | 
            +
                      login: 'sammysosa',
         | 
| 15 | 
            +
                      username: 'johnny',
         | 
| 16 | 
            +
                      name: 'george'
         | 
| 17 | 
            +
                    }
         | 
| 12 18 | 
             
                  end
         | 
| 13 19 | 
             
                  let(:filtered_params) do
         | 
| 14 | 
            -
                    { | 
| 15 | 
            -
             | 
| 20 | 
            +
                    {
         | 
| 21 | 
            +
                      password: '[REDACTED]',
         | 
| 22 | 
            +
                      password_confirm: '[REDACTED]',
         | 
| 23 | 
            +
                      token: '[REDACTED]',
         | 
| 24 | 
            +
                      login: '[REDACTED]',
         | 
| 25 | 
            +
                      username: '[REDACTED]',
         | 
| 26 | 
            +
                      name: 'george'
         | 
| 27 | 
            +
                    }
         | 
| 16 28 | 
             
                  end
         | 
| 17 29 |  | 
| 18 30 | 
             
                  it 'filters out sensitive values' do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: finapps_core
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.0. | 
| 4 | 
            +
              version: 2.0.6
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Erich Quintero
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017-02- | 
| 11 | 
            +
            date: 2017-02-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: faraday
         | 
| @@ -39,7 +39,7 @@ dependencies: | |
| 39 39 | 
             
                    version: '0.11'
         | 
| 40 40 | 
             
                - - ">="
         | 
| 41 41 | 
             
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            -
                    version: 0.11.0
         | 
| 42 | 
            +
                    version: 0.11.0.1
         | 
| 43 43 | 
             
              type: :runtime
         | 
| 44 44 | 
             
              prerelease: false
         | 
| 45 45 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -49,7 +49,7 @@ dependencies: | |
| 49 49 | 
             
                    version: '0.11'
         | 
| 50 50 | 
             
                - - ">="
         | 
| 51 51 | 
             
                  - !ruby/object:Gem::Version
         | 
| 52 | 
            -
                    version: 0.11.0
         | 
| 52 | 
            +
                    version: 0.11.0.1
         | 
| 53 53 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 54 54 | 
             
              name: typhoeus
         | 
| 55 55 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -116,7 +116,7 @@ dependencies: | |
| 116 116 | 
             
                requirements:
         | 
| 117 117 | 
             
                - - "~>"
         | 
| 118 118 | 
             
                  - !ruby/object:Gem::Version
         | 
| 119 | 
            -
                    version: 12.0 | 
| 119 | 
            +
                    version: '12.0'
         | 
| 120 120 | 
             
                - - ">="
         | 
| 121 121 | 
             
                  - !ruby/object:Gem::Version
         | 
| 122 122 | 
             
                    version: 12.0.0
         | 
| @@ -126,7 +126,7 @@ dependencies: | |
| 126 126 | 
             
                requirements:
         | 
| 127 127 | 
             
                - - "~>"
         | 
| 128 128 | 
             
                  - !ruby/object:Gem::Version
         | 
| 129 | 
            -
                    version: 12.0 | 
| 129 | 
            +
                    version: '12.0'
         | 
| 130 130 | 
             
                - - ">="
         | 
| 131 131 | 
             
                  - !ruby/object:Gem::Version
         | 
| 132 132 | 
             
                    version: 12.0.0
         |