finapps_core 4.0.4 → 4.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 32d0222212c94c51e4c6ca4dbd982102d7a5ce46fbde1fa540cad0731a7fc1cb
4
- data.tar.gz: 7447225fa3227bd95c27689e05453ea22b4e9e9a86b114e06d8563e8289a363a
3
+ metadata.gz: eba98fc6c3a8244d55bb5df6cdf3b7f6d801ca3616832d7d5212a457bc89ae00
4
+ data.tar.gz: 7a25c2e816c3d042db423f352281576a33d78c16508a78ce777b9d1846475b1d
5
5
  SHA512:
6
- metadata.gz: 11256723cabf356e93c849148957f17c906186fae6af8009e0c6937d57b37511f15dc75e4cdd2ba7359328f1a6e96731f9d5df09dd99c642074e886738e56a9e
7
- data.tar.gz: e4d58a7b71d21bde18cdf1036bd638cc950f6b8f89caa515ae7cb5b07d67256c0ed0765d4c69c78dc6590be219775e1524cc9921b3f725f596404b134173168b
6
+ metadata.gz: 721f6b53b469d6a438bfeeb480f40cfb93f3ce1623859cc48275557c6db20201aea9fa2b519317ad1bd799b2ca98dbb639bf05e070b5c2672ae1ebc865db8703
7
+ data.tar.gz: 0e1056a5f6c0dd3a821c37d40d883422abe8f7a9faadac948964c909e95dbffad11d142cb5376143d6e63dee202b6b8cf4ecd1fd16a08032603fd91e0290b9c5
data/finapps_core.gemspec CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.1'
31
31
  spec.add_development_dependency 'rspec', '~> 3.8', '>= 3.8.0'
32
32
  spec.add_development_dependency 'rubocop', '~> 0.59', '>= 0.59.2'
33
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.30', '>= 1.30.0'
33
34
  spec.add_development_dependency 'sinatra', '~> 2.0', '>= 2.0.4'
34
35
  spec.add_development_dependency 'webmock', '~> 3.4', '>= 3.4.2'
35
36
 
@@ -14,6 +14,9 @@ module FinAppsCore # :nodoc:
14
14
  # Raised whenever there is a session timeout at the API.
15
15
  class ApiSessionTimeoutError < Error; end
16
16
 
17
+ # Raised whenever the session is invalid or does not exist at the API.
18
+ class ApiUnauthenticatedError < Error; end
19
+
17
20
  # Raised whenever the request specify an unsupported HTTP method.
18
21
  class UnsupportedHttpMethodError < Error; end
19
22
 
@@ -6,28 +6,26 @@ using StringExtensions
6
6
  module FinAppsCore
7
7
  module Middleware
8
8
  class RaiseError < Faraday::Response::Middleware # :nodoc:
9
- SUCCESS_STATUSES = 200..299
9
+ SUCCESS_STATUSES = (200..299).freeze
10
+ API_UNAUTHENTICATED = 401
10
11
  CONNECTION_FAILED_STATUS = 407
11
12
  API_SESSION_TIMEOUT = 419
12
13
 
13
14
  def on_complete(env)
14
15
  return if SUCCESS_STATUSES.include?(env[:status])
15
16
 
16
- if env[:status] == API_SESSION_TIMEOUT
17
- raise(FinAppsCore::Error::ApiSessionTimeoutError, 'API Session Timed out')
18
- end
19
- if env[:status] == CONNECTION_FAILED_STATUS
20
- raise(FinAppsCore::Error::ConnectionFailedError, 'Connection Failed')
21
- end
17
+ raise(FinAppsCore::ApiUnauthenticatedError, 'API Invalid Session') if env[:status] == API_UNAUTHENTICATED
18
+ raise(FinAppsCore::ApiSessionTimeoutError, 'API Session Timed out') if env[:status] == API_SESSION_TIMEOUT
19
+ raise(FinAppsCore::ConnectionFailedError, 'Connection Failed') if env[:status] == CONNECTION_FAILED_STATUS
22
20
 
23
21
  raise(Faraday::Error::ClientError, response_values(env))
24
22
  end
25
23
 
26
24
  def response_values(env)
27
25
  {
28
- status: env.status,
29
- headers: env.response_headers,
30
- body: env.body,
26
+ status: env.status,
27
+ headers: env.response_headers,
28
+ body: env.body,
31
29
  error_messages: error_messages(env.body)
32
30
  }
33
31
  end
@@ -9,10 +9,10 @@ module FinAppsCore
9
9
 
10
10
  # noinspection SpellCheckingInspection
11
11
  DEFAULTS = {
12
- host: 'https://api.financialapps.com',
13
- timeout: 30,
14
- proxy: nil,
15
- log_level: Logger::INFO
12
+ host: 'https://api.financialapps.com',
13
+ timeout: 30,
14
+ proxy: nil,
15
+ log_level: Logger::INFO
16
16
  }.freeze
17
17
  end
18
18
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinAppsCore
4
- VERSION = '4.0.4'
4
+ VERSION = '4.0.6'
5
5
  end
@@ -11,9 +11,14 @@ RSpec.describe FinAppsCore::Middleware::RaiseError do
11
11
  let(:env) { Env.new(200) }
12
12
  it { expect { subject.on_complete(env) }.not_to raise_error }
13
13
  end
14
- context 'for client errors' do
14
+ context 'for invalid session errors' do
15
15
  let(:env) { Env.new(401, {}, '{"messages":["Invalid User Identifier or Credentials"]}') }
16
- error_message = 'the server responded with status 401'
16
+ error_message = 'API Invalid Session'
17
+ it { expect { subject.on_complete(env) }.to raise_error(FinAppsCore::ApiUnauthenticatedError, error_message) }
18
+ end
19
+ context 'for client errors' do
20
+ let(:env) { Env.new(404, {}, '{"messages":["Resource Not Found"]}') }
21
+ error_message = 'the server responded with status 404'
17
22
  it { expect { subject.on_complete(env) }.to raise_error(Faraday::Error::ClientError, error_message) }
18
23
  end
19
24
  context 'for connection failed error' do
@@ -21,7 +26,7 @@ RSpec.describe FinAppsCore::Middleware::RaiseError do
21
26
  error_message = 'Connection Failed'
22
27
  it { expect { subject.on_complete(env) }.to raise_error(FinAppsCore::ConnectionFailedError, error_message) }
23
28
  end
24
- context 'for connection failed error' do
29
+ context 'for session timeout error' do
25
30
  let(:env) { Env.new(419) }
26
31
  error_message = 'API Session Timed out'
27
32
  it { expect { subject.on_complete(env) }.to raise_error(FinAppsCore::ApiSessionTimeoutError, error_message) }
data/spec/spec_helper.rb CHANGED
@@ -37,4 +37,4 @@ RSpec.configure do |config|
37
37
  end
38
38
 
39
39
  VALID_CREDENTIALS = { identifier: '49fb918d-7e71-44dd-7378-58f19606df2a',
40
- token: 'hohoho=' }.freeze
40
+ token: 'hohoho=' }.freeze
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: 4.0.4
4
+ version: 4.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erich Quintero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-15 00:00:00.000000000 Z
11
+ date: 2018-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -190,6 +190,26 @@ dependencies:
190
190
  - - ">="
191
191
  - !ruby/object:Gem::Version
192
192
  version: 0.59.2
193
+ - !ruby/object:Gem::Dependency
194
+ name: rubocop-rspec
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '1.30'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 1.30.0
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '1.30'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 1.30.0
193
213
  - !ruby/object:Gem::Dependency
194
214
  name: sinatra
195
215
  requirement: !ruby/object:Gem::Requirement
@@ -321,24 +341,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
321
341
  version: '0'
322
342
  requirements: []
323
343
  rubyforge_project:
324
- rubygems_version: 2.7.7
344
+ rubygems_version: 2.7.6
325
345
  signing_key:
326
346
  specification_version: 4
327
347
  summary: FinApps REST API ruby client - Core.
328
348
  test_files:
329
- - spec/rest/defaults_spec.rb
330
- - spec/rest/base_client_spec.rb
349
+ - spec/middleware/response/raise_error_spec.rb
350
+ - spec/middleware/request/user_agent_spec.rb
351
+ - spec/middleware/request/no_encoding_basic_authentication_spec.rb
352
+ - spec/middleware/request/request_id_spec.rb
353
+ - spec/middleware/request/tenant_authentication_spec.rb
354
+ - spec/middleware/request/accept_json_spec.rb
331
355
  - spec/rest/credentials_spec.rb
332
356
  - spec/rest/configuration_spec.rb
357
+ - spec/rest/defaults_spec.rb
358
+ - spec/rest/base_client_spec.rb
333
359
  - spec/rest/resources_spec.rb
334
- - spec/support/fake_api.rb
335
360
  - spec/utils/validatable_spec.rb
336
- - spec/spec_helpers/client.rb
361
+ - spec/support/fake_api.rb
337
362
  - spec/spec_helper.rb
338
363
  - spec/core_extensions/object/is_integer_spec.rb
339
- - spec/middleware/request/no_encoding_basic_authentication_spec.rb
340
- - spec/middleware/request/user_agent_spec.rb
341
- - spec/middleware/request/tenant_authentication_spec.rb
342
- - spec/middleware/request/accept_json_spec.rb
343
- - spec/middleware/request/request_id_spec.rb
344
- - spec/middleware/response/raise_error_spec.rb
364
+ - spec/spec_helpers/client.rb