finapps_core 5.0.11 → 6.0.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: dd4de0991c1e8755d433dab8dc0dc424f3ea91f96397ab34989afdc662dc01cc
4
- data.tar.gz: 6755974411e0bc978871969f6ce994013e2317c28fe0e18cce96a3b615673a0b
3
+ metadata.gz: 95f8aa98b4a17b4497c2940488e03953b5898ee1d3dfcb2fee61d537484075bf
4
+ data.tar.gz: 84c70cff196aec1f0b31a534e5c7c3b142f68ba308506ed823a654e89da182b6
5
5
  SHA512:
6
- metadata.gz: e5d459507dd0de21b728fbee60427007ed59243f2b2d98e6ea9c196ed605a363d91b24f752a76ffe1bbf10c34c9ae439985bf91f41bfdc7f0a523dd219d45c6b
7
- data.tar.gz: 9b3c7d10e5dbb30c1f8fcc31e66975b01fcb5296045af520aae8bd869f52a89514697a99df2627b7cb456e07f4d69b70479b65171b5ca070942d0386e91fbc50
6
+ metadata.gz: 82aa422c010d8eaa84b5b12f886107ac096b64dbedd07d50ec218ceced322d1fefb72b11cc3bff6a60f4bf466f09918bb081dab9a062ac51adfca2c54d0a2ce3
7
+ data.tar.gz: 790061688554488ec8fdd3c8522409a1a61813f8063bfdb1083be32305b0a01eb3c6a0c1f60931364112521e71fcbbe846572ee7e8c86a1fd76a47265d977db5
@@ -0,0 +1,7 @@
1
+ version: 2
2
+ updates:
3
+ # Maintain dependencies for GitHub Actions
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "daily"
@@ -39,7 +39,7 @@ exclude-labels:
39
39
  - invalid
40
40
 
41
41
  template: |
42
- ## [$RESOLVED_VERSION](https://github.com/finapps/ruby-client/compare/$PREVIOUS_TAG...$RESOLVED_VERSION)
42
+ ## [$RESOLVED_VERSION](https://github.com/finapps/ruby-client-core/compare/$PREVIOUS_TAG...$RESOLVED_VERSION)
43
43
  $CHANGES
44
44
 
45
45
  replacers:
@@ -0,0 +1,41 @@
1
+ name: Continuous Integration
2
+
3
+ on:
4
+ push:
5
+ paths-ignore:
6
+ - ".github/**"
7
+ - ".VERSION"
8
+ pull_request:
9
+ paths-ignore:
10
+ - ".github/**"
11
+ - ".VERSION"
12
+ jobs:
13
+ test:
14
+ if: "!contains(github.event.head_commit.message, 'skip ci')"
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ os: [ubuntu-latest]
19
+ ruby: [2.6, 2.7, '3.0']
20
+ runs-on: ${{ matrix.os }}
21
+ steps:
22
+ - name: Checkout source code
23
+ uses: actions/checkout@v2.3.4
24
+
25
+ - name: Install required ruby version
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ bundler-cache: true # runs 'bundle install' and caches gems
29
+
30
+ - name: Run rspec with coverage
31
+ run: |
32
+ COVERAGE=true bundle exec rspec
33
+
34
+ - name: Run rubocop
35
+ run: |
36
+ bundle exec rubocop --parallel
37
+
38
+ - name: Run Skunk on Project
39
+ run: |
40
+ gem install skunk
41
+ skunk lib/
@@ -9,46 +9,46 @@ jobs:
9
9
  strategy:
10
10
  fail-fast: true
11
11
 
12
- steps:
13
- - uses: actions/checkout@master
14
- with:
15
- persist-credentials: false
16
- fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
12
+ steps:
13
+ - name: Checkout source code
14
+ uses: actions/checkout@v2.3.4
15
+ with:
16
+ persist-credentials: false
17
+ fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
17
18
 
18
- - uses: actions/setup-ruby@v1
19
- with:
20
- ruby-version: '2.6'
21
-
22
- - name: Get version from latest tag
23
- id: get_version
24
- uses: battila7/get-version-action@v2
19
+ - name: Install required ruby version
20
+ uses: ruby/setup-ruby@v1
25
21
 
26
- - name: Bump version
27
- run: |
28
- gem install -N gem-release
29
- git config --local user.email "action@github.com"
30
- git config --local user.name "GitHub Action"
31
- gem bump --skip-ci --version ${{ steps.get_version.outputs.version-without-v }}
32
-
33
- - name: Push changes
34
- uses: ad-m/github-push-action@master
35
- with:
36
- # GitHub Actions token does not support pushing to protected branches.
37
- # github_token: ${{ secrets.GITHUB_TOKEN }}
38
- #
39
- # A manually populated`PERSONAL_ACCESS_TOKEN` environment variable
40
- # with permissions to push to a protected branch must be used.
41
- # not ideal - keep eyes open for a better solution
42
- github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
43
-
44
- - name: Release gem to rubygems.org
45
- run: |
46
- set +x
47
- mkdir -p ~/.gem
48
- cat << EOF > ~/.gem/credentials
49
- ---
50
- :rubygems_api_key: ${{ secrets.RUBYGEMS_API_KEY }}
51
- EOF
52
- chmod 0600 ~/.gem/credentials
53
- set -x
54
- gem release
22
+ - name: Get version from latest tag
23
+ id: get_version
24
+ uses: battila7/get-version-action@v2
25
+
26
+ - name: Bump version
27
+ run: |
28
+ gem install -N gem-release
29
+ git config --local user.email "action@github.com"
30
+ git config --local user.name "GitHub Action"
31
+ gem bump --skip-ci --version ${{ steps.get_version.outputs.version-without-v }}
32
+
33
+ - name: Push changes
34
+ uses: ad-m/github-push-action@master
35
+ with:
36
+ # GitHub Actions token does not support pushing to protected branches.
37
+ # github_token: ${{ secrets.GITHUB_TOKEN }}
38
+ #
39
+ # A manually populated`PERSONAL_ACCESS_TOKEN` environment variable
40
+ # with permissions to push to a protected branch must be used.
41
+ # not ideal - keep eyes open for a better solution
42
+ github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
43
+
44
+ - name: Release gem to rubygems.org
45
+ run: |
46
+ set +x
47
+ mkdir -p ~/.gem
48
+ cat << EOF > ~/.gem/credentials
49
+ ---
50
+ :rubygems_api_key: ${{ secrets.RUBYGEMS_API_KEY }}
51
+ EOF
52
+ chmod 0600 ~/.gem/credentials
53
+ set -x
54
+ gem release
@@ -7,8 +7,17 @@ jobs:
7
7
  label:
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
- - uses: mheap/github-action-required-labels@v1
10
+ - uses: mheap/github-action-required-labels@v1.1.2
11
11
  with:
12
- mode: exactly
12
+ mode: minimum
13
13
  count: 1
14
- labels: "bug, change, enhancement"
14
+ #
15
+ # Releases will group changes under Added/Fixed/Changed sub-headers
16
+ # based on labels and follwing these rules:
17
+ #
18
+ # Added: enhancement
19
+ # Fixed: bug
20
+ # Changed: maintenance, change, dependencies (used by Dependabot)
21
+ # Ignore: skip-changelog
22
+ #
23
+ labels: "enhancement, bug, maintenance, change, dependencies, skip-changelog"
data/.rubocop.yml CHANGED
@@ -46,7 +46,7 @@ Metrics/ClassLength:
46
46
  - app/controllers/orders_controller.rb
47
47
  - app/models/order.rb
48
48
  Metrics/BlockLength:
49
- ExcludedMethods: ['describe', 'context']
49
+ IgnoredMethods: ['describe', 'context']
50
50
  Exclude:
51
51
  - finapps_core.gemspec
52
52
  - config/environments/**/**
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.6.3
1
+ ruby-2.7.2
data/README.md CHANGED
@@ -3,9 +3,6 @@ FinApps Ruby-Client-Core
3
3
  ========================
4
4
 
5
5
  [![Gem Version](https://img.shields.io/gem/v/finapps_core.svg)](https://rubygems.org/gems/finapps_core)
6
- [![Build Status](https://travis-ci.org/finapps/ruby-client-core.svg?branch=master)](https://travis-ci.org/finapps/ruby-client-core)
7
- [![Code Climate](https://codeclimate.com/github/finapps/ruby-client-core/badges/gpa.svg)](https://codeclimate.com/github/finapps/ruby-client-core)
8
- [![Test Coverage](https://codeclimate.com/github/finapps/ruby-client-core/badges/coverage.svg)](https://codeclimate.com/github/finapps/ruby-client-core/coverage)
9
6
  [![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://finapps.mit-license.org)
10
7
 
11
8
  Common library for Ruby clients.
@@ -18,4 +15,4 @@ See Financial Apps API [Ruby Client][ruby-client].
18
15
  [FinancialApps.com][financialapps]
19
16
 
20
17
  [ruby-client]: https://github.com/finapps/ruby-client
21
- [financialapps]: https://financialapps.com
18
+ [financialapps]: https://financialapps.com
data/finapps_core.gemspec CHANGED
@@ -20,18 +20,20 @@ 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', '~> 1.0', '>= 1.0.1'
24
- spec.add_runtime_dependency 'faraday_middleware', '~> 1.0', '>= 1.0'
23
+ spec.add_runtime_dependency 'faraday', '~> 1.4', '>= 1.4.0'
24
+ spec.add_runtime_dependency 'faraday_middleware', '~> 1.0', '>= 1.0.0'
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 2.0', '>= 2.0.2'
27
- spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0', '>= 1.0.9'
26
+ spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.16'
28
27
  spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
29
- spec.add_development_dependency 'rspec', '~> 3.8', '>= 3.8.0'
30
- spec.add_development_dependency 'rubocop', '~> 0.86', '>= 0.86.0'
31
- spec.add_development_dependency 'rubocop-performance', '~> 1.6', '>= 1.6.1'
32
- spec.add_development_dependency 'rubocop-rspec', '~> 1.40', '>= 1.40.0'
33
- spec.add_development_dependency 'sinatra', '~> 2.0', '>= 2.0.5'
34
- spec.add_development_dependency 'webmock', '~> 3.6', '>= 3.6.0'
28
+ spec.add_development_dependency 'rspec', '~> 3.10', '>= 3.10.0'
29
+ spec.add_development_dependency 'rubocop', '~> 1.9', '>= 1.9.1'
30
+ spec.add_development_dependency 'rubocop-performance', '~> 1.9', '>= 1.9.2'
31
+ spec.add_development_dependency 'rubocop-rake', '~> 0.5', '>= 0.5.1'
32
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.2', '>= 2.2.0'
33
+ spec.add_development_dependency 'simplecov', '~> 0.21', '>= 0.21.2'
34
+ spec.add_development_dependency 'simplecov-console', '~> 0.9'
35
+ spec.add_development_dependency 'sinatra', '~> 2.1', '>= 2.1.0'
36
+ spec.add_development_dependency 'webmock', '~> 3.12', '>= 3.12.2'
35
37
 
36
38
  spec.extra_rdoc_files = %w(README.md LICENSE)
37
39
  spec.rdoc_options = %w(--line-numbers --inline-source --title finapps-ruby-core --main README.md)
data/lib/finapps_core.rb CHANGED
@@ -18,6 +18,7 @@ require 'finapps_core/middleware/request/accept_json'
18
18
  require 'finapps_core/middleware/request/user_agent'
19
19
  require 'finapps_core/middleware/request/request_id'
20
20
  require 'finapps_core/middleware/request/x_consumer_id'
21
+ require 'finapps_core/middleware/request/x_tenant_id'
21
22
  require 'finapps_core/middleware/response/raise_error'
22
23
  require 'finapps_core/middleware/middleware'
23
24
 
@@ -20,7 +20,8 @@ module FinAppsCore
20
20
  no_encoding_basic_authentication: -> { NoEncodingBasicAuthentication },
21
21
  tenant_authentication: -> { TenantAuthentication },
22
22
  request_id: -> { RequestId },
23
- x_consumer_id: -> { XConsumerId }
23
+ x_consumer_id: -> { XConsumerId },
24
+ x_tenant_id: -> { XTenantId }
24
25
  end
25
26
  end
26
27
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinAppsCore
4
+ module Middleware
5
+ # Adds a header to specify tenant to retrieve data for
6
+ class XTenantId < Faraday::Middleware
7
+ KEY = 'X-Tenant-ID' unless defined? KEY
8
+
9
+ def initialize(app, x_tenant_id)
10
+ super(app)
11
+ @x_tenant_id = x_tenant_id.to_s.strip
12
+ end
13
+
14
+ def call(env)
15
+ env[:request_headers][KEY] ||= @x_tenant_id
16
+ @app.call(env)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -8,13 +8,14 @@ module FinAppsCore
8
8
 
9
9
  attr_accessor :tenant_token, :user_identifier, :user_token,
10
10
  :host, :proxy, :timeout, :retry_limit, :rashify,
11
- :log_level, :request_id, :consumer_id
11
+ :log_level, :request_id, :consumer_id, :tenant_id
12
12
 
13
13
  def initialize(options = {})
14
- FinAppsCore::REST::Defaults::DEFAULTS.merge(remove_empty_options(options))
15
- .each {|key, value| public_send("#{key}=", value) }
16
- fail_invalid_host
14
+ assign_attributes FinAppsCore::REST::Defaults::DEFAULTS
15
+ .merge(options.compact)
17
16
  fail_invalid_timeout
17
+ fail_invalid_host
18
+ @host = @host.chomp('/')
18
19
  end
19
20
 
20
21
  def valid_user_credentials?
@@ -23,6 +24,27 @@ module FinAppsCore
23
24
 
24
25
  private
25
26
 
27
+ def assign_attributes(new_attributes)
28
+ unless new_attributes.respond_to?(:each_pair)
29
+ fail ArgumentError, 'When assigning attributes, '\
30
+ "you must pass a hash argument, #{new_attributes.class} passed."
31
+ end
32
+ return if new_attributes.empty?
33
+
34
+ _assign_attributes new_attributes
35
+ end
36
+
37
+ def _assign_attributes(attributes)
38
+ attributes.each {|key, value| _assign_attribute(key, value) }
39
+ end
40
+
41
+ def _assign_attribute(key, value)
42
+ setter = :"#{key}="
43
+ fail UnknownAttributeError.new(self, key.to_s) unless respond_to?(setter)
44
+
45
+ public_send(setter, value)
46
+ end
47
+
26
48
  def fail_invalid_host
27
49
  return if valid_host?
28
50
 
@@ -40,10 +62,6 @@ module FinAppsCore
40
62
  def valid_host?
41
63
  host.start_with?('http://', 'https://')
42
64
  end
43
-
44
- def remove_empty_options(hash)
45
- hash.reject {|_, value| value.nil? }
46
- end
47
65
  end
48
66
  end
49
67
  end
@@ -29,6 +29,7 @@ module FinAppsCore
29
29
  conn.request :accept_json
30
30
  conn.request :user_agent
31
31
  conn.request :x_consumer_id, config.consumer_id if config.consumer_id
32
+ conn.request :x_tenant_id, config.tenant_id if config.tenant_id
32
33
  conn.request :json
33
34
  conn.request :retry
34
35
  conn.request :multipart
@@ -5,11 +5,11 @@ require 'logger'
5
5
  module FinAppsCore
6
6
  module REST
7
7
  module Defaults
8
- API_VERSION = '4'
8
+ API_VERSION = '5'
9
9
 
10
10
  # noinspection SpellCheckingInspection
11
11
  DEFAULTS = {
12
- host: 'https://api.finclear.io',
12
+ host: 'https://api.allcleardecisioning.com',
13
13
  timeout: 30,
14
14
  proxy: nil,
15
15
  log_level: Logger::UNKNOWN
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinAppsCore
4
- VERSION = '5.0.11'
4
+ VERSION = '6.0.0'
5
5
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe FinAppsCore::Middleware::XTenantId do
4
+ let(:id) { 'valid_tenant_id' }
5
+ let(:fake_app) { proc {|env| env } }
6
+ let(:env) { {request_headers: {}} }
7
+
8
+ describe '#call' do
9
+ subject(:x_tenant_id) { described_class.new(fake_app, id) }
10
+
11
+ it('generates an X-Tenant-ID header') do
12
+ key = FinAppsCore::Middleware::XTenantId::KEY
13
+ expect(x_tenant_id.call(env)[:request_headers][key]).to eq(id)
14
+ end
15
+ end
16
+ end
@@ -4,33 +4,59 @@ require 'finapps_core/error'
4
4
 
5
5
  RSpec.describe FinAppsCore::REST::Configuration do
6
6
  describe '#new' do
7
+ expected_error = FinAppsCore::InvalidArgumentsError
8
+ default_host = FinAppsCore::REST::Defaults::DEFAULTS[:host]
9
+ default_timeout = FinAppsCore::REST::Defaults::DEFAULTS[:timeout]
10
+
7
11
  context 'with invalid timeout configuration' do
8
- subject(:configuration) { described_class.new(timeout: 'whatever') }
12
+ subject(:configuration) { described_class.new(timeout: 'foo') }
9
13
 
10
- expected_error = FinAppsCore::InvalidArgumentsError
11
- it { expect { configuration }.to raise_error(expected_error, 'Invalid argument. {timeout: whatever}') }
14
+ it {
15
+ expect { configuration }
16
+ .to raise_error(expected_error, 'Invalid argument. {timeout: foo}')
17
+ }
12
18
  end
13
19
 
14
20
  context 'with missing timeout configuration' do
15
21
  subject(:configuration) { described_class.new(timeout: nil) }
16
22
 
17
23
  it 'has a default timeout value' do
18
- expect(configuration.timeout).to eq(FinAppsCore::REST::Defaults::DEFAULTS[:timeout])
24
+ expect(configuration.timeout).to eq(default_timeout)
19
25
  end
20
26
  end
21
27
 
22
28
  context 'with invalid host configuration' do
23
- subject(:configuration) { described_class.new(host: 'whatever') }
29
+ subject(:configuration) { described_class.new(host: 'foo') }
24
30
 
25
- expected_error = FinAppsCore::InvalidArgumentsError
26
- it { expect { configuration }.to raise_error(expected_error, 'Invalid argument. {host: whatever}') }
31
+ it do
32
+ expect { configuration }
33
+ .to raise_error(expected_error, 'Invalid argument. {host: foo}')
34
+ end
35
+ end
36
+
37
+ context 'with valid host configuration' do
38
+ subject(:configuration) { described_class.new(host: 'https://api.com/') }
39
+
40
+ it 'the default host value is not used' do
41
+ expect(configuration.host).not_to eq(default_host)
42
+ end
43
+
44
+ it 'the provided host value is assigned to host' do
45
+ expect(configuration.host).to include('https://api.com')
46
+ end
47
+
48
+ context 'when given host value ends on /' do
49
+ it 'the / character is removed' do
50
+ expect(configuration.host).not_to end_with('/')
51
+ end
52
+ end
27
53
  end
28
54
 
29
55
  context 'with missing host configuration' do
30
56
  subject(:configuration) { described_class.new(host: nil) }
31
57
 
32
58
  it 'has a default host value' do
33
- expect(configuration.host).to eq(FinAppsCore::REST::Defaults::DEFAULTS[:host])
59
+ expect(configuration.host).to eq(default_host)
34
60
  end
35
61
  end
36
62
  end
@@ -43,7 +69,9 @@ RSpec.describe FinAppsCore::REST::Configuration do
43
69
  end
44
70
 
45
71
  context 'when user credentials were set' do
46
- subject(:configuration) { described_class.new(user_identifier: 1, user_token: 2) }
72
+ subject(:configuration) do
73
+ described_class.new(user_identifier: 1, user_token: 2)
74
+ end
47
75
 
48
76
  it { expect(configuration.valid_user_credentials?).to eq(true) }
49
77
  end
@@ -6,12 +6,25 @@ RSpec.describe FinAppsCore::REST::Defaults do
6
6
  describe 'set constants' do
7
7
  before { stub_const(described_class.to_s, fake_class) }
8
8
 
9
- it('sets API_VERSION') { expect(described_class::API_VERSION).to eq '4' }
9
+ it('sets API_VERSION') { expect(described_class::API_VERSION).to eq '5' }
10
10
  it('sets DEFAULTS') { expect(described_class::DEFAULTS).to be_a(Hash) }
11
11
  it('freezes DEFAULTS') { expect(described_class::DEFAULTS).to be_frozen }
12
- it('sets DEFAULTS[:host]') { expect(described_class::DEFAULTS[:host]).to eq 'https://api.finclear.io' }
13
- it('sets DEFAULTS[:timeout]') { expect(described_class::DEFAULTS[:timeout]).to eq 30 }
14
- it('does not set DEFAULTS[:proxy]') { expect(described_class::DEFAULTS[:proxy]).to be_nil }
15
- it('sets DEFAULTS[:log_level]') { expect(described_class::DEFAULTS[:log_level]).to eq Logger::UNKNOWN }
12
+
13
+ it('sets DEFAULTS[:host]') {
14
+ expected = 'https://api.allcleardecisioning.com'
15
+ expect(described_class::DEFAULTS[:host]).to eq expected
16
+ }
17
+
18
+ it('sets DEFAULTS[:timeout]') {
19
+ expect(described_class::DEFAULTS[:timeout]).to eq 30
20
+ }
21
+
22
+ it('does not set DEFAULTS[:proxy]') {
23
+ expect(described_class::DEFAULTS[:proxy]).to be_nil
24
+ }
25
+
26
+ it('sets DEFAULTS[:log_level]') {
27
+ expect(described_class::DEFAULTS[:log_level]).to eq Logger::UNKNOWN
28
+ }
16
29
  end
17
30
  end
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if ENV['CODECLIMATE_REPO_TOKEN']
4
- # require 'codeclimate-test-reporter'
5
- # CodeClimate::TestReporter.start
3
+ if ENV['COVERAGE'] == 'true'
6
4
  require 'simplecov'
7
- SimpleCov.start
5
+ require 'simplecov-console'
6
+
7
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
8
+ SimpleCov::Formatter::HTMLFormatter,
9
+ SimpleCov::Formatter::Console,
10
+ ]
11
+
12
+ SimpleCov.start do
13
+ track_files 'lib/**/*.rb'
14
+ end
15
+
16
+ puts "Using SimpleCov v#{SimpleCov::VERSION}"
8
17
  end
9
18
 
10
19
  require 'bundler/setup'
@@ -33,7 +42,6 @@ RSpec.configure do |config|
33
42
  base_url = "#{FinAppsCore::REST::Defaults::DEFAULTS[:host]}/v#{FinAppsCore::REST::Defaults::API_VERSION}/"
34
43
  stub_request(:any, /#{base_url}/).to_rack(::FakeApi)
35
44
  end
36
- WebMock.disable_net_connect!(allow: 'codeclimate.com')
37
45
  end
38
46
 
39
47
  VALID_CREDENTIALS = {identifier: '49fb918d-7e71-44dd-7378-58f19606df2a',
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: 5.0.11
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erich Quintero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-06 00:00:00.000000000 Z
11
+ date: 2021-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,220 +16,254 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '1.4'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.0.1
22
+ version: 1.4.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '1.0'
29
+ version: '1.4'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.0.1
32
+ version: 1.4.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: faraday_middleware
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '1.0'
40
37
  - - "~>"
41
38
  - !ruby/object:Gem::Version
42
39
  version: '1.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: '1.0'
50
47
  - - "~>"
51
48
  - !ruby/object:Gem::Version
52
49
  version: '1.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '2.0'
59
+ version: '2.2'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 2.0.2
62
+ version: 2.2.16
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '2.0'
69
+ version: '2.2'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 2.0.2
72
+ version: 2.2.16
73
73
  - !ruby/object:Gem::Dependency
74
- name: codeclimate-test-reporter
74
+ name: rake
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '1.0'
79
+ version: '13.0'
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 1.0.9
82
+ version: 13.0.1
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.0'
89
+ version: '13.0'
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 1.0.9
92
+ version: 13.0.1
93
93
  - !ruby/object:Gem::Dependency
94
- name: rake
94
+ name: rspec
95
95
  requirement: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '13.0'
99
+ version: '3.10'
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 13.0.1
102
+ version: 3.10.0
103
103
  type: :development
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '13.0'
109
+ version: '3.10'
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: 13.0.1
112
+ version: 3.10.0
113
113
  - !ruby/object:Gem::Dependency
114
- name: rspec
114
+ name: rubocop
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: 3.8.0
120
117
  - - "~>"
121
118
  - !ruby/object:Gem::Version
122
- version: '3.8'
119
+ version: '1.9'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 1.9.1
123
123
  type: :development
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: 3.8.0
130
127
  - - "~>"
131
128
  - !ruby/object:Gem::Version
132
- version: '3.8'
129
+ version: '1.9'
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 1.9.1
133
133
  - !ruby/object:Gem::Dependency
134
- name: rubocop
134
+ name: rubocop-performance
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: 0.86.0
140
137
  - - "~>"
141
138
  - !ruby/object:Gem::Version
142
- version: '0.86'
139
+ version: '1.9'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 1.9.2
143
143
  type: :development
144
144
  prerelease: false
145
145
  version_requirements: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- version: 0.86.0
150
147
  - - "~>"
151
148
  - !ruby/object:Gem::Version
152
- version: '0.86'
149
+ version: '1.9'
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 1.9.2
153
153
  - !ruby/object:Gem::Dependency
154
- name: rubocop-performance
154
+ name: rubocop-rake
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '1.6'
159
+ version: '0.5'
160
160
  - - ">="
161
161
  - !ruby/object:Gem::Version
162
- version: 1.6.1
162
+ version: 0.5.1
163
163
  type: :development
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
167
  - - "~>"
168
168
  - !ruby/object:Gem::Version
169
- version: '1.6'
169
+ version: '0.5'
170
170
  - - ">="
171
171
  - !ruby/object:Gem::Version
172
- version: 1.6.1
172
+ version: 0.5.1
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: rubocop-rspec
175
175
  requirement: !ruby/object:Gem::Requirement
176
176
  requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '2.2'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 2.2.0
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '2.2'
177
190
  - - ">="
178
191
  - !ruby/object:Gem::Version
179
- version: 1.40.0
192
+ version: 2.2.0
193
+ - !ruby/object:Gem::Dependency
194
+ name: simplecov
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
180
197
  - - "~>"
181
198
  - !ruby/object:Gem::Version
182
- version: '1.40'
199
+ version: '0.21'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 0.21.2
183
203
  type: :development
184
204
  prerelease: false
185
205
  version_requirements: !ruby/object:Gem::Requirement
186
206
  requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '0.21'
187
210
  - - ">="
188
211
  - !ruby/object:Gem::Version
189
- version: 1.40.0
212
+ version: 0.21.2
213
+ - !ruby/object:Gem::Dependency
214
+ name: simplecov-console
215
+ requirement: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - "~>"
218
+ - !ruby/object:Gem::Version
219
+ version: '0.9'
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: !ruby/object:Gem::Requirement
223
+ requirements:
190
224
  - - "~>"
191
225
  - !ruby/object:Gem::Version
192
- version: '1.40'
226
+ version: '0.9'
193
227
  - !ruby/object:Gem::Dependency
194
228
  name: sinatra
195
229
  requirement: !ruby/object:Gem::Requirement
196
230
  requirements:
197
231
  - - "~>"
198
232
  - !ruby/object:Gem::Version
199
- version: '2.0'
233
+ version: '2.1'
200
234
  - - ">="
201
235
  - !ruby/object:Gem::Version
202
- version: 2.0.5
236
+ version: 2.1.0
203
237
  type: :development
204
238
  prerelease: false
205
239
  version_requirements: !ruby/object:Gem::Requirement
206
240
  requirements:
207
241
  - - "~>"
208
242
  - !ruby/object:Gem::Version
209
- version: '2.0'
243
+ version: '2.1'
210
244
  - - ">="
211
245
  - !ruby/object:Gem::Version
212
- version: 2.0.5
246
+ version: 2.1.0
213
247
  - !ruby/object:Gem::Dependency
214
248
  name: webmock
215
249
  requirement: !ruby/object:Gem::Requirement
216
250
  requirements:
217
- - - ">="
218
- - !ruby/object:Gem::Version
219
- version: 3.6.0
220
251
  - - "~>"
221
252
  - !ruby/object:Gem::Version
222
- version: '3.6'
253
+ version: '3.12'
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: 3.12.2
223
257
  type: :development
224
258
  prerelease: false
225
259
  version_requirements: !ruby/object:Gem::Requirement
226
260
  requirements:
227
- - - ">="
228
- - !ruby/object:Gem::Version
229
- version: 3.6.0
230
261
  - - "~>"
231
262
  - !ruby/object:Gem::Version
232
- version: '3.6'
263
+ version: '3.12'
264
+ - - ">="
265
+ - !ruby/object:Gem::Version
266
+ version: 3.12.2
233
267
  description: A simple library for communicating with the FinApps REST API. Core functionality.
234
268
  email:
235
269
  - erich@financialapps.com
@@ -240,8 +274,9 @@ extra_rdoc_files:
240
274
  - LICENSE
241
275
  files:
242
276
  - ".codeclimate.yml"
277
+ - ".github/dependabot.yml"
243
278
  - ".github/release-drafter.yml"
244
- - ".github/workflows/main.yaml"
279
+ - ".github/workflows/ci.yaml"
245
280
  - ".github/workflows/release-drafter.yml"
246
281
  - ".github/workflows/release.yml"
247
282
  - ".github/workflows/verify-pr-labeled.yml"
@@ -271,6 +306,7 @@ files:
271
306
  - lib/finapps_core/middleware/request/tenant_authentication.rb
272
307
  - lib/finapps_core/middleware/request/user_agent.rb
273
308
  - lib/finapps_core/middleware/request/x_consumer_id.rb
309
+ - lib/finapps_core/middleware/request/x_tenant_id.rb
274
310
  - lib/finapps_core/middleware/response/raise_error.rb
275
311
  - lib/finapps_core/rest/base_client.rb
276
312
  - lib/finapps_core/rest/configuration.rb
@@ -289,6 +325,7 @@ files:
289
325
  - spec/middleware/request/tenant_authentication_spec.rb
290
326
  - spec/middleware/request/user_agent_spec.rb
291
327
  - spec/middleware/request/x_consumer_id_spec.rb
328
+ - spec/middleware/request/x_tenant_id_spec.rb
292
329
  - spec/middleware/response/raise_error_spec.rb
293
330
  - spec/rest/base_client_spec.rb
294
331
  - spec/rest/configuration_spec.rb
@@ -330,25 +367,26 @@ required_rubygems_version: !ruby/object:Gem::Requirement
330
367
  - !ruby/object:Gem::Version
331
368
  version: '0'
332
369
  requirements: []
333
- rubygems_version: 3.0.3
370
+ rubygems_version: 3.1.4
334
371
  signing_key:
335
372
  specification_version: 4
336
373
  summary: FinApps REST API ruby client - Core.
337
374
  test_files:
338
- - spec/spec_helper.rb
339
- - spec/support/fake_api.rb
340
- - spec/utils/validatable_spec.rb
341
375
  - spec/core_extensions/object/is_integer_spec.rb
342
- - spec/rest/base_client_spec.rb
343
- - spec/rest/defaults_spec.rb
344
- - spec/rest/resources_spec.rb
345
- - spec/rest/credentials_spec.rb
346
- - spec/rest/configuration_spec.rb
376
+ - spec/support/fake_api.rb
377
+ - spec/spec_helper.rb
347
378
  - spec/spec_helpers/client.rb
348
379
  - spec/middleware/request/user_agent_spec.rb
349
- - spec/middleware/request/tenant_authentication_spec.rb
350
380
  - spec/middleware/request/x_consumer_id_spec.rb
381
+ - spec/middleware/request/accept_json_spec.rb
382
+ - spec/middleware/request/x_tenant_id_spec.rb
383
+ - spec/middleware/request/tenant_authentication_spec.rb
351
384
  - spec/middleware/request/no_encoding_basic_authentication_spec.rb
352
385
  - spec/middleware/request/request_id_spec.rb
353
- - spec/middleware/request/accept_json_spec.rb
354
386
  - spec/middleware/response/raise_error_spec.rb
387
+ - spec/utils/validatable_spec.rb
388
+ - spec/rest/configuration_spec.rb
389
+ - spec/rest/resources_spec.rb
390
+ - spec/rest/credentials_spec.rb
391
+ - spec/rest/defaults_spec.rb
392
+ - spec/rest/base_client_spec.rb
@@ -1,38 +0,0 @@
1
- name: Continuous Integration
2
-
3
- on: [push, pull_request]
4
-
5
- jobs:
6
- ci:
7
- if: "!contains(github.event.head_commit.message, 'skip ci')"
8
- runs-on: ubuntu-latest
9
-
10
- strategy:
11
- fail-fast: true
12
-
13
- steps:
14
- - uses: actions/checkout@v1
15
-
16
- - name: Use Ruby 2.6
17
- uses: actions/setup-ruby@v1
18
- with:
19
- ruby-version: '2.6'
20
-
21
- - uses: actions/cache@v2
22
- with:
23
- path: vendor/bundle
24
- key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
25
- restore-keys: |
26
- ${{ runner.os }}-gems-
27
-
28
- - name: Install gems
29
- run: |
30
- gem install -N bundler
31
- bundle config path vendor/bundle
32
- bundle install --jobs 4 --retry 3
33
-
34
- - name: Run rubocop
35
- run: bundle exec rubocop
36
-
37
- - name: Run tests
38
- run: bundle exec rspec