finapps 2.0.16 → 2.0.17
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/README.md +1 -0
- data/lib/finapps/rest/base_client.rb +4 -4
- data/lib/finapps/rest/client.rb +4 -0
- data/lib/finapps/rest/resources.rb +16 -18
- data/lib/finapps/rest/sessions.rb +25 -0
- data/lib/finapps/version.rb +1 -1
- data/lib/finapps.rb +1 -0
- data/spec/middleware/{accept_json_spec.rb → request/accept_json_spec.rb} +0 -0
- data/spec/middleware/{tenant_authentication_spec.rb → request/tenant_authentication_spec.rb} +0 -0
- data/spec/middleware/{user_agent_spec.rb → request/user_agent_spec.rb} +0 -0
- data/spec/middleware/response/raise_error_spec.rb +24 -0
- data/spec/rest/base_client_spec.rb +7 -2
- data/spec/rest/client_spec.rb +6 -2
- data/spec/rest/sessions_spec.rb +42 -0
- data/spec/rest/users_spec.rb +4 -1
- data/spec/spec_helpers/client.rb +8 -0
- data/spec/support/fake_api.rb +13 -2
- metadata +25 -18
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d92b2ccd2cbe3f2d7088938232d1c73f0c0c95b4
         | 
| 4 | 
            +
              data.tar.gz: 5b0f6965de1b07f36ce1f0584e475a7a8e8d1461
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5a909e96ebb509f0f975b2892355343ba890d1cf85eaca4d0b368f01b3d7a8a6054521c0ad93327128e0484fc0a1eae2bed91f596c0c18f987c0d7ecdcd9bdd3
         | 
| 7 | 
            +
              data.tar.gz: 6156ca6318427f8f0c8557182d8b965a58a7aedee84ba8c06c121f90adf4ba81d0c43972fd8ac846eca42c74356ea93b29e356216dd2dbe66e9c8af6b880984a
         | 
    
        data/README.md
    CHANGED
    
    | @@ -5,6 +5,7 @@ FinApps Ruby-Client | |
| 5 5 | 
             
            [](https://badge.fury.io/rb/finapps)
         | 
| 6 6 | 
             
            [](https://travis-ci.org/finapps/ruby-client)
         | 
| 7 7 | 
             
            [](https://codeclimate.com/github/finapps/ruby-client)
         | 
| 8 | 
            +
            [](https://codeclimate.com/github/finapps/ruby-client/coverage)
         | 
| 8 9 | 
             
            [](https://gemnasium.com/github.com/finapps/ruby-client)
         | 
| 9 10 | 
             
            [](http://finapps.mit-license.org)
         | 
| 10 11 |  | 
| @@ -38,7 +38,7 @@ module FinApps | |
| 38 38 | 
             
                    raise FinApps::MissingArgumentsError.new 'Missing argument: path.' if path.blank?
         | 
| 39 39 | 
             
                    raise FinApps::MissingArgumentsError.new 'Missing argument: method.' if method.blank?
         | 
| 40 40 |  | 
| 41 | 
            -
                    response, error_messages = execute_request(method, params | 
| 41 | 
            +
                    response, error_messages = execute_request(path, method, params)
         | 
| 42 42 | 
             
                    result = if empty?(response)
         | 
| 43 43 | 
             
                               nil
         | 
| 44 44 | 
             
                             else
         | 
| @@ -54,10 +54,10 @@ module FinApps | |
| 54 54 | 
             
                    response.blank? || (response.respond_to?(:body) && response.body.blank?)
         | 
| 55 55 | 
             
                  end
         | 
| 56 56 |  | 
| 57 | 
            -
                  def execute_request(method, params | 
| 57 | 
            +
                  def execute_request(path, method, params)
         | 
| 58 58 | 
             
                    error_messages = []
         | 
| 59 59 | 
             
                    begin
         | 
| 60 | 
            -
                      response = execute_method method, params | 
| 60 | 
            +
                      response = execute_method path, method, params
         | 
| 61 61 | 
             
                    rescue FinApps::InvalidArgumentsError,
         | 
| 62 62 | 
             
                           FinApps::MissingArgumentsError,
         | 
| 63 63 | 
             
                           Faraday::Error::ConnectionFailed => error
         | 
| @@ -86,7 +86,7 @@ module FinApps | |
| 86 86 | 
             
                    ['Unexpected error.']
         | 
| 87 87 | 
             
                  end
         | 
| 88 88 |  | 
| 89 | 
            -
                  def execute_method(method, params | 
| 89 | 
            +
                  def execute_method(path, method, params)
         | 
| 90 90 | 
             
                    case method
         | 
| 91 91 | 
             
                    when :get
         | 
| 92 92 | 
             
                      get(path)
         | 
    
        data/lib/finapps/rest/client.rb
    CHANGED
    
    
| @@ -11,39 +11,37 @@ module FinApps | |
| 11 11 | 
             
                  def initialize(client)
         | 
| 12 12 | 
             
                    raise MissingArgumentsError.new 'Missing argument: client.' if client.nil?
         | 
| 13 13 | 
             
                    raise InvalidArgumentsError.new 'Invalid argument: client.' unless client.is_a?(FinApps::REST::Client)
         | 
| 14 | 
            +
             | 
| 14 15 | 
             
                    @client = client
         | 
| 15 16 | 
             
                  end
         | 
| 16 17 |  | 
| 17 18 | 
             
                  def create(params={}, path=nil)
         | 
| 18 | 
            -
                    path  | 
| 19 | 
            -
                    logger.debug "#{self.class.name}##{__method__} => path: #{path} params: #{params}"
         | 
| 20 | 
            -
                    results, error_messages = client.send_request(path, :post, params)
         | 
| 21 | 
            -
                    [results, error_messages]
         | 
| 19 | 
            +
                    request_with_body(path, :post, params)
         | 
| 22 20 | 
             
                  end
         | 
| 23 21 |  | 
| 24 22 | 
             
                  def update(params={}, path=nil)
         | 
| 25 | 
            -
                    path  | 
| 26 | 
            -
                    logger.debug "#{self.class.name}##{__method__} => path: #{path} params: #{params}"
         | 
| 27 | 
            -
                    results, error_messages = client.send_request(path, :put, params)
         | 
| 28 | 
            -
                    [results, error_messages]
         | 
| 23 | 
            +
                    request_with_body(path, :put, params)
         | 
| 29 24 | 
             
                  end
         | 
| 30 25 |  | 
| 31 26 | 
             
                  def show(id=nil, path=nil)
         | 
| 32 | 
            -
                     | 
| 33 | 
            -
             | 
| 34 | 
            -
                    path = "#{end_point}/:id".sub ':id', ERB::Util.url_encode(id) if path.nil?
         | 
| 35 | 
            -
                    logger.debug "#{self.class.name}##{__method__} => path: #{path}"
         | 
| 36 | 
            -
                    results, error_messages = client.send_request(path, :get)
         | 
| 37 | 
            -
                    [results, error_messages]
         | 
| 27 | 
            +
                    request_without_body(path, :get, id)
         | 
| 38 28 | 
             
                  end
         | 
| 39 29 |  | 
| 40 30 | 
             
                  def destroy(id=nil, path=nil)
         | 
| 41 | 
            -
                     | 
| 31 | 
            +
                    request_without_body(path, :delete, id)
         | 
| 32 | 
            +
                  end
         | 
| 42 33 |  | 
| 34 | 
            +
                  def request_without_body(path, method, id)
         | 
| 35 | 
            +
                    raise MissingArgumentsError.new 'Missing argument: id.' if id.nil? && path.nil?
         | 
| 43 36 | 
             
                    path = "#{end_point}/:id".sub ':id', ERB::Util.url_encode(id) if path.nil?
         | 
| 44 | 
            -
                     | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 37 | 
            +
                    request_with_body path, method, {}
         | 
| 38 | 
            +
                  end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                  def request_with_body(path, method, params)
         | 
| 41 | 
            +
                    path = end_point if path.nil?
         | 
| 42 | 
            +
                    logger.debug "#{self.class.name}##{__method__} => path: #{path} params: #{params}"
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                    client.send_request path, method, params
         | 
| 47 45 | 
             
                  end
         | 
| 48 46 |  | 
| 49 47 | 
             
                  protected
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
            module FinApps
         | 
| 3 | 
            +
              module REST
         | 
| 4 | 
            +
                class Sessions < FinApps::REST::Resources # :nodoc:
         | 
| 5 | 
            +
                  require 'erb'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                  using ObjectExtensions
         | 
| 8 | 
            +
                  using StringExtensions
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  # @param [Hash] params
         | 
| 11 | 
            +
                  # @return [Array<String>]
         | 
| 12 | 
            +
                  def create(params)
         | 
| 13 | 
            +
                    raise InvalidArgumentsError.new 'Invalid argument: params.' unless validates params
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                    super params, 'login'
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  private
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  def validates(params)
         | 
| 21 | 
            +
                    params.key?(:email) && params[:email].present? && params.key?(:password) && params[:password].present?
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
    
        data/lib/finapps/version.rb
    CHANGED
    
    
    
        data/lib/finapps.rb
    CHANGED
    
    
| 
            File without changes
         | 
    
        data/spec/middleware/{tenant_authentication_spec.rb → request/tenant_authentication_spec.rb}
    RENAMED
    
    | 
            File without changes
         | 
| 
            File without changes
         | 
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
            RSpec.describe FinApps::Middleware::RaiseError do
         | 
| 3 | 
            +
              let(:fake_app) { proc {|env| env } }
         | 
| 4 | 
            +
              Env = Struct.new(:status, :response_headers, :body)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              describe '#on_complete' do
         | 
| 7 | 
            +
                subject { FinApps::Middleware::RaiseError.new(fake_app) }
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                context 'for succesful requests' do
         | 
| 10 | 
            +
                  let(:env) { Env.new(200) }
         | 
| 11 | 
            +
                  it { expect { subject.on_complete(env) }.not_to raise_error }
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
                context 'for client errors' do
         | 
| 14 | 
            +
                  let(:env) { Env.new(401, {}, '{"messages":["Invalid User Identifier or Credentials"]}') }
         | 
| 15 | 
            +
                  error_message = 'the server responded with status 401'
         | 
| 16 | 
            +
                  it { expect { subject.on_complete(env) }.to raise_error(Faraday::Error::ClientError, error_message) }
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
                context 'for connection failed error' do
         | 
| 19 | 
            +
                  let(:env) { Env.new(407) }
         | 
| 20 | 
            +
                  error_message = '407 "Proxy Authentication Required"'
         | 
| 21 | 
            +
                  it { expect { subject.on_complete(env) }.to raise_error(Faraday::Error::ConnectionFailed, error_message) }
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| @@ -69,9 +69,8 @@ RSpec.describe FinApps::REST::BaseClient do | |
| 69 69 | 
             
                    subject { FinApps::REST::BaseClient.new(valid_tenant_options).send_request('client_error', :get) }
         | 
| 70 70 |  | 
| 71 71 | 
             
                    it('result is null') { expect(subject[RESPONSE]).to be_nil }
         | 
| 72 | 
            -
                    it('error_messages is not null') { expect(subject[ERROR_MESSAGES]).not_to be_nil }
         | 
| 73 72 | 
             
                    it('error_messages is an array') { expect(subject[ERROR_MESSAGES]).to be_a(Array) }
         | 
| 74 | 
            -
                    it(' | 
| 73 | 
            +
                    it('error_messages gets populated'){expect(subject[ERROR_MESSAGES].first).to eq 'Password Minimum size is 8'}
         | 
| 75 74 | 
             
                  end
         | 
| 76 75 |  | 
| 77 76 | 
             
                  context 'for server errors' do
         | 
| @@ -97,4 +96,10 @@ RSpec.describe FinApps::REST::BaseClient do | |
| 97 96 | 
             
                  end
         | 
| 98 97 | 
             
                end
         | 
| 99 98 | 
             
              end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
              describe '#method_missing' do
         | 
| 101 | 
            +
                context 'for unsupported methods' do
         | 
| 102 | 
            +
                  it { expect { subject.unsupported }.to raise_error(NoMethodError) }
         | 
| 103 | 
            +
                end
         | 
| 104 | 
            +
              end
         | 
| 100 105 | 
             
            end
         | 
    
        data/spec/rest/client_spec.rb
    CHANGED
    
    | @@ -13,7 +13,7 @@ RSpec.describe FinApps::REST::Client do | |
| 13 13 | 
             
              context 'an instance of Client' do
         | 
| 14 14 | 
             
                subject { FinApps::REST::Client.new(:company_identifier, :company_token) }
         | 
| 15 15 |  | 
| 16 | 
            -
                %i(users orders order_tokens).each do |method|
         | 
| 16 | 
            +
                %i(users sessions orders order_tokens).each do |method|
         | 
| 17 17 | 
             
                  it "responds to #{method}" do
         | 
| 18 18 | 
             
                    expect(subject).to respond_to(method)
         | 
| 19 19 | 
             
                  end
         | 
| @@ -23,6 +23,10 @@ RSpec.describe FinApps::REST::Client do | |
| 23 23 | 
             
                  it { expect(subject.users).to be_an_instance_of(FinApps::REST::Users) }
         | 
| 24 24 | 
             
                end
         | 
| 25 25 |  | 
| 26 | 
            +
                describe '#sessions' do
         | 
| 27 | 
            +
                  it { expect(subject.sessions).to be_an_instance_of(FinApps::REST::Sessions) }
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 26 30 | 
             
                describe '#order_tokens' do
         | 
| 27 31 | 
             
                  it { expect(subject.order_tokens).to be_an_instance_of(FinApps::REST::OrderTokens) }
         | 
| 28 32 | 
             
                end
         | 
| @@ -34,7 +38,7 @@ RSpec.describe FinApps::REST::Client do | |
| 34 38 | 
             
                # [:users, :institutions, :user_institutions, :transactions, :categories,
         | 
| 35 39 | 
             
                # :budget_models, :budget_calculation, :budgets, :cashflows,
         | 
| 36 40 | 
             
                # :alert, :alert_definition, :alert_preferences, :alert_settings, :rule_sets]
         | 
| 37 | 
            -
                %i(users orders order_tokens).each do |method|
         | 
| 41 | 
            +
                %i(users sessions orders order_tokens).each do |method|
         | 
| 38 42 | 
             
                  it "memoizes the result of #{method}" do
         | 
| 39 43 | 
             
                    first = subject.send(method)
         | 
| 40 44 | 
             
                    second = subject.send(method)
         | 
| @@ -0,0 +1,42 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
            require 'spec_helpers/client'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            RSpec.describe FinApps::REST::Sessions, 'initialized with valid FinApps::Client object' do
         | 
| 5 | 
            +
              include SpecHelpers::Client
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              describe '#create' do
         | 
| 8 | 
            +
                subject { FinApps::REST::Sessions.new(client) }
         | 
| 9 | 
            +
                let(:create) { subject.create(credentials) }
         | 
| 10 | 
            +
                let(:results) { create[0] }
         | 
| 11 | 
            +
                let(:error_messages) { create[1] }
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                context 'when missing email or password' do
         | 
| 14 | 
            +
                  message = 'Invalid argument: params.'
         | 
| 15 | 
            +
                  it do
         | 
| 16 | 
            +
                    expect { subject.create(email: nil, password: 'password') }
         | 
| 17 | 
            +
                      .to raise_error(FinApps::InvalidArgumentsError, message)
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                  it do
         | 
| 20 | 
            +
                    expect { subject.create(email: 'email', password: nil) }
         | 
| 21 | 
            +
                      .to raise_error(FinApps::InvalidArgumentsError, message)
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                context 'for invalid credentials' do
         | 
| 26 | 
            +
                  let(:credentials) { {email: 'email@domain.com', password: 'invalid_password'} }
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  it { expect { create }.not_to raise_error }
         | 
| 29 | 
            +
                  it('results is nil') { expect(results).to be_nil }
         | 
| 30 | 
            +
                  error_message = 'Invalid User Identifier or Credentials'
         | 
| 31 | 
            +
                  it('error_messages are populated') { expect(error_messages.first).to eq(error_message) }
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                context 'for valid credentials' do
         | 
| 35 | 
            +
                  let(:credentials) { {email: 'email@domain.com', password: 'valid_password'} }
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  it('results is a Hashie::Rash') { expect(results).to be_a(Hashie::Rash) }
         | 
| 38 | 
            +
                  it('token value is in the result') { expect(results).to respond_to(:token) }
         | 
| 39 | 
            +
                  it('error_messages is empty') { expect(error_messages).to be_empty }
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
            end
         | 
    
        data/spec/rest/users_spec.rb
    CHANGED
    
    | @@ -1,7 +1,10 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 | 
            +
            require 'spec_helpers/client'
         | 
| 3 | 
            +
             | 
| 2 4 | 
             
            RSpec.describe FinApps::REST::Users, 'initialized with valid FinApps::Client object' do
         | 
| 5 | 
            +
              include SpecHelpers::Client
         | 
| 6 | 
            +
             | 
| 3 7 | 
             
              missing_public_id = 'Missing argument: public_id.'
         | 
| 4 | 
            -
              client = FinApps::REST::Client.new :company_identifier, :company_token
         | 
| 5 8 |  | 
| 6 9 | 
             
              describe '#show' do
         | 
| 7 10 | 
             
                subject(:users) { FinApps::REST::Users.new(client) }
         | 
    
        data/spec/support/fake_api.rb
    CHANGED
    
    | @@ -18,8 +18,19 @@ class FakeApi < Sinatra::Base | |
| 18 18 | 
             
              get('/v2/users/valid_public_id') { json_response 200, 'user.json' }
         | 
| 19 19 | 
             
              get('/v2/users/invalid_public_id') { json_response 404, 'resource_not_found.json' }
         | 
| 20 20 | 
             
              put('/v2/users/valid_public_id') { status 204 }
         | 
| 21 | 
            -
              put('/v2/users/valid_public_id/password'){ json_response 200, 'user.json'}
         | 
| 22 | 
            -
              put('/v2/users/invalid_public_id/password'){ json_response 404, 'resource_not_found.json' }
         | 
| 21 | 
            +
              put('/v2/users/valid_public_id/password') { json_response 200, 'user.json' }
         | 
| 22 | 
            +
              put('/v2/users/invalid_public_id/password') { json_response 404, 'resource_not_found.json' }
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              # session
         | 
| 25 | 
            +
              post('/v2/login') do
         | 
| 26 | 
            +
                request.body.rewind
         | 
| 27 | 
            +
                request_payload = JSON.parse request.body.read
         | 
| 28 | 
            +
                if request_payload['password'] == 'valid_password'
         | 
| 29 | 
            +
                  json_response(200, 'user.json')
         | 
| 30 | 
            +
                else
         | 
| 31 | 
            +
                  json_response(401, 'unauthorized.json')
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
              end
         | 
| 23 34 |  | 
| 24 35 | 
             
              # relevance
         | 
| 25 36 | 
             
              get('/v2/relevance/ruleset/names') { json_response 200, 'relevance_ruleset_names.json' }
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: finapps
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.0. | 
| 4 | 
            +
              version: 2.0.17
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Erich Quintero
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-07- | 
| 11 | 
            +
            date: 2016-07-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: faraday
         | 
| @@ -264,15 +264,17 @@ files: | |
| 264 264 | 
             
            - lib/finapps/rest/order_tokens.rb
         | 
| 265 265 | 
             
            - lib/finapps/rest/orders.rb
         | 
| 266 266 | 
             
            - lib/finapps/rest/resources.rb
         | 
| 267 | 
            +
            - lib/finapps/rest/sessions.rb
         | 
| 267 268 | 
             
            - lib/finapps/rest/users.rb
         | 
| 268 269 | 
             
            - lib/finapps/utils/loggeable.rb
         | 
| 269 270 | 
             
            - lib/finapps/version.rb
         | 
| 270 271 | 
             
            - lib/tasks/releaser.rake
         | 
| 271 272 | 
             
            - spec/core_extensions/hash/compact_spec.rb
         | 
| 272 273 | 
             
            - spec/core_extensions/object/is_integer_spec.rb
         | 
| 273 | 
            -
            - spec/middleware/accept_json_spec.rb
         | 
| 274 | 
            -
            - spec/middleware/tenant_authentication_spec.rb
         | 
| 275 | 
            -
            - spec/middleware/user_agent_spec.rb
         | 
| 274 | 
            +
            - spec/middleware/request/accept_json_spec.rb
         | 
| 275 | 
            +
            - spec/middleware/request/tenant_authentication_spec.rb
         | 
| 276 | 
            +
            - spec/middleware/request/user_agent_spec.rb
         | 
| 277 | 
            +
            - spec/middleware/response/raise_error_spec.rb
         | 
| 276 278 | 
             
            - spec/rest/base_client_spec.rb
         | 
| 277 279 | 
             
            - spec/rest/client_spec.rb
         | 
| 278 280 | 
             
            - spec/rest/configuration_spec.rb
         | 
| @@ -280,8 +282,10 @@ files: | |
| 280 282 | 
             
            - spec/rest/order_tokens_spec.rb
         | 
| 281 283 | 
             
            - spec/rest/orders_spec.rb
         | 
| 282 284 | 
             
            - spec/rest/resources_spec.rb
         | 
| 285 | 
            +
            - spec/rest/sessions_spec.rb
         | 
| 283 286 | 
             
            - spec/rest/users_spec.rb
         | 
| 284 287 | 
             
            - spec/spec_helper.rb
         | 
| 288 | 
            +
            - spec/spec_helpers/client.rb
         | 
| 285 289 | 
             
            - spec/support/fake_api.rb
         | 
| 286 290 | 
             
            - spec/support/fixtures/error.json
         | 
| 287 291 | 
             
            - spec/support/fixtures/order_token.json
         | 
| @@ -316,23 +320,26 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 316 320 | 
             
                  version: '0'
         | 
| 317 321 | 
             
            requirements: []
         | 
| 318 322 | 
             
            rubyforge_project: 
         | 
| 319 | 
            -
            rubygems_version: 2. | 
| 323 | 
            +
            rubygems_version: 2.6.6
         | 
| 320 324 | 
             
            signing_key: 
         | 
| 321 325 | 
             
            specification_version: 4
         | 
| 322 326 | 
             
            summary: FinApps REST API ruby client.
         | 
| 323 327 | 
             
            test_files:
         | 
| 324 | 
            -
            - spec/ | 
| 325 | 
            -
            - spec/ | 
| 326 | 
            -
            - spec/ | 
| 327 | 
            -
            - spec/middleware/ | 
| 328 | 
            -
            - spec/middleware/ | 
| 329 | 
            -
            - spec/ | 
| 330 | 
            -
            - spec/ | 
| 331 | 
            -
            - spec/rest/configuration_spec.rb
         | 
| 328 | 
            +
            - spec/spec_helper.rb
         | 
| 329 | 
            +
            - spec/support/fake_api.rb
         | 
| 330 | 
            +
            - spec/spec_helpers/client.rb
         | 
| 331 | 
            +
            - spec/middleware/request/user_agent_spec.rb
         | 
| 332 | 
            +
            - spec/middleware/request/tenant_authentication_spec.rb
         | 
| 333 | 
            +
            - spec/middleware/request/accept_json_spec.rb
         | 
| 334 | 
            +
            - spec/middleware/response/raise_error_spec.rb
         | 
| 332 335 | 
             
            - spec/rest/credentials_spec.rb
         | 
| 333 | 
            -
            - spec/rest/order_tokens_spec.rb
         | 
| 334 | 
            -
            - spec/rest/orders_spec.rb
         | 
| 335 336 | 
             
            - spec/rest/resources_spec.rb
         | 
| 337 | 
            +
            - spec/rest/sessions_spec.rb
         | 
| 338 | 
            +
            - spec/rest/client_spec.rb
         | 
| 339 | 
            +
            - spec/rest/orders_spec.rb
         | 
| 340 | 
            +
            - spec/rest/order_tokens_spec.rb
         | 
| 341 | 
            +
            - spec/rest/base_client_spec.rb
         | 
| 342 | 
            +
            - spec/rest/configuration_spec.rb
         | 
| 336 343 | 
             
            - spec/rest/users_spec.rb
         | 
| 337 | 
            -
            - spec/ | 
| 338 | 
            -
            - spec/ | 
| 344 | 
            +
            - spec/core_extensions/object/is_integer_spec.rb
         | 
| 345 | 
            +
            - spec/core_extensions/hash/compact_spec.rb
         |