finapps_core 4.0.4 → 4.0.5

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: 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