bigid_bgcheck 0.1.1 → 0.1.2

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: b0e56b8286ff8c62b9e3fc0e4b4c147df0737c1bf8af5d32ac6c12fb162ba1cd
4
- data.tar.gz: cc0203dfb074f3960d6c96ed832279f8d07e52927fbb3f6880219d502b96403f
3
+ metadata.gz: 0f078e2eba71cbc4578ee9a4c1ceec003435b4f3331ec52924c9b2a30eb873b5
4
+ data.tar.gz: bada7c2db0bbc0a3cbb2f7470a3f1d9d9a366a9f150cb95313e3f49aadc66f75
5
5
  SHA512:
6
- metadata.gz: e7cc45959661c9cb9d62d1237253544af5545454b8de12047d824968cdf7b76c36752b8b12b7ab4d70205c669ba6b749813a3ae40b226b6473fc1afcf60dbce4
7
- data.tar.gz: a2f88c24add0312d6e2871432ead1c5eba93d8cca6fe4ebfea966c0ca751a9e320686e4d8b1261a6dc65031de8a0fc17c65e403ead78b9dcac300429f5ec4e40
6
+ metadata.gz: 53249dd591e3b909a88fb5bdc0b3a70e89b56364c5ba86945cf6620f842e6c5cdf750bb07b75bca4c29ea24106a384e9fab06b43873590f0770504325549ae67
7
+ data.tar.gz: 6ddbe14002b9525f7b447cbfa4982eea4dd83458b0c6457344711acd7c72cf95ac971e31d8793a007b17d496d5ab5186a27337f13f5fe1fb30361c2cdb1a1c67
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG for bigid_bgcheck
2
2
 
3
+ ## v0.1.2
4
+
5
+ * Move auth service to an external package
6
+
3
7
  ## v0.1.1
4
8
 
5
9
  * Fix a problem with the credentials when its get by the env variables
data/README.md CHANGED
@@ -4,18 +4,17 @@ BigId Background Check's Library for Ruby
4
4
  [![Gem Version](https://badge.fury.io/rb/bigid_bgcheck.svg)](https://badge.fury.io/rb/bigid_bgcheck)
5
5
  [![Build Status](https://travis-ci.com/Quasar-Flash/bigid-bgcheck-ruby.svg?branch=master)](https://travis-ci.com/Quasar-Flash/bigid-bgcheck-ruby)
6
6
 
7
- Simple, efficient background processing for Ruby.
8
-
9
- Sidekiq uses threads to handle many jobs at the same time in the
10
- same process. It does not require Rails but will integrate tightly with
11
- Rails to make background processing dead simple.
12
-
13
- Dev Requirements
7
+ Requirements
14
8
  -----------------
15
9
 
16
10
  - Ruby: Any version
17
11
  - Bundler
18
12
 
13
+ Included Modules
14
+ -----------------
15
+
16
+ - [bigid-auth-ruby](https://github.com/Quasar-Flash/bigid-auth-ruby) - BigID API authentication module
17
+
19
18
  Global Installation
20
19
  -----------------
21
20
 
@@ -37,10 +36,10 @@ Setting the BigID credentials
37
36
  Setting the BigID credentials - Rails Project
38
37
  -----------------
39
38
 
40
- Create the config/initializers/bigid_bgcheck.rb file and define:
39
+ Create the config/initializers/bigid.rb file and define:
41
40
 
42
41
  # Set the env variables
43
- Bigid::Bgcheck.configure do |config|
42
+ Bigid.configure do |config|
44
43
  config.username = 'your_username'
45
44
  config.password = 'your_password'
46
45
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Bigid
4
4
  module Bgcheck
5
- class Request < Bigid::Bgcheck::Auth::AuthenticatedResource
5
+ class Request < Bigid::Auth::AuthenticatedResource
6
6
  def call(document:, document_type:, group:)
7
7
  res = @connection.post(url: Bigid::Bgcheck::SRV_ENDPOINT,
8
8
  body: payload(document, document_type, group).to_json)
@@ -25,7 +25,7 @@ module Bigid
25
25
  end
26
26
 
27
27
  def payload(document, document_type, group, parameters = {})
28
- login = Bigid::Bgcheck.configuration.username
28
+ login = Bigid.configuration.username
29
29
  document_type = document_type.upcase.strip
30
30
 
31
31
  raise Bigid::Bgcheck::DocumentNotSupportedError unless DocType.valid?(document_type)
@@ -9,6 +9,6 @@ module Bigid
9
9
  # Major - Incremented for incompatible changes with previous release (or big enough new features)
10
10
  # Minor - Incremented for new backwards-compatible features + deprecations
11
11
  # Patch - Incremented for backwards-compatible bug fixes
12
- VERSION = "0.1.1"
12
+ VERSION = "0.1.2"
13
13
  end
14
14
  end
data/lib/bigid_bgcheck.rb CHANGED
@@ -4,38 +4,27 @@ require "faraday"
4
4
  require "i18n"
5
5
  require "json"
6
6
 
7
- require "bigid/bgcheck/version"
8
-
9
- require "bigid/bgcheck/integration/multipart_flat"
10
- require "bigid/bgcheck/integration/response"
11
- require "bigid/bgcheck/integration/request"
12
- require "bigid/bgcheck/integration/connection"
7
+ require "bigid_auth"
13
8
 
14
- require "bigid/bgcheck/auth/connection"
15
- require "bigid/bgcheck/auth/authentication"
16
- require "bigid/bgcheck/auth/authenticated_resource"
17
- require "bigid/bgcheck/auth/authenticated_connection"
9
+ require "bigid/bgcheck/version"
18
10
 
19
11
  require "bigid/bgcheck/base_error"
20
12
  require "bigid/bgcheck/bad_request_error"
21
13
  require "bigid/bgcheck/document_not_supported_error"
22
14
  require "bigid/bgcheck/internal_error"
23
15
  require "bigid/bgcheck/invalid_credentials_error"
16
+ require "bigid/bgcheck/invalid_document_value_error"
24
17
  require "bigid/bgcheck/no_info_error"
25
18
  require "bigid/bgcheck/server_error"
26
19
 
27
20
  require "bigid/bgcheck/doc_type"
28
21
  require "bigid/bgcheck/result"
29
22
  require "bigid/bgcheck/result_code"
30
-
31
23
  require "bigid/bgcheck/request"
32
24
 
33
25
  module Bigid
34
26
  module Bgcheck
35
- BASE_URL = "https://bigid.bigdatacorp.com.br"
36
- AUTH_ENDPOINT = "https://accesstoken.bigdatacorp.com.br"
37
- SRV_ENDPOINT = "backgroundcheck"
38
- TOKEN_EXPIRATION = 60_000
27
+ SRV_ENDPOINT = "backgroundcheck"
39
28
 
40
29
  class << self
41
30
  attr_writer :configuration
@@ -52,19 +41,11 @@ module Bigid
52
41
  end
53
42
 
54
43
  class Configuration
55
- attr_writer :username, :password
56
-
57
- def username
58
- @username ||= ENV["BIGID_USERNAME"]
59
- end
60
-
61
- def password
62
- @password ||= ENV["BIGID_PASSWORD"]
63
- end
64
44
  end
65
45
 
66
46
  I18n.load_path << Dir["#{File.expand_path('config/locales')}/*.yml"]
67
47
  I18n.config.available_locales = :en, :'pt-BR'
68
48
  I18n.default_locale = :en
49
+ I18n.reload!
69
50
  end
70
51
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bigid_bgcheck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danilo Carolino
@@ -10,6 +10,26 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2021-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bigid_auth
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.1.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: '0.1'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 0.1.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0.1'
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: faraday
15
35
  requirement: !ruby/object:Gem::Requirement
@@ -227,23 +247,14 @@ files:
227
247
  - LICENSE.txt
228
248
  - README.md
229
249
  - Rakefile
230
- - lib/bigid/bgcheck/auth/authenticated_connection.rb
231
- - lib/bigid/bgcheck/auth/authenticated_resource.rb
232
- - lib/bigid/bgcheck/auth/authentication.rb
233
- - lib/bigid/bgcheck/auth/connection.rb
234
250
  - lib/bigid/bgcheck/bad_request_error.rb
235
251
  - lib/bigid/bgcheck/base_error.rb
236
252
  - lib/bigid/bgcheck/doc_type.rb
237
253
  - lib/bigid/bgcheck/document_not_supported_error.rb
238
- - lib/bigid/bgcheck/integration/connection.rb
239
- - lib/bigid/bgcheck/integration/multipart_flat.rb
240
- - lib/bigid/bgcheck/integration/request.rb
241
- - lib/bigid/bgcheck/integration/response.rb
242
254
  - lib/bigid/bgcheck/internal_error.rb
243
255
  - lib/bigid/bgcheck/invalid_credentials_error.rb
244
256
  - lib/bigid/bgcheck/invalid_document_value_error.rb
245
257
  - lib/bigid/bgcheck/no_info_error.rb
246
- - lib/bigid/bgcheck/not_permission_error.rb
247
258
  - lib/bigid/bgcheck/request.rb
248
259
  - lib/bigid/bgcheck/result.rb
249
260
  - lib/bigid/bgcheck/result_code.rb
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bigid
4
- module Bgcheck
5
- module Auth
6
- class AuthenticatedConnection < Connection
7
- COOKIE_CACHE_KEY = "BIG_ID_AUTHENTICATION_COOKIE_CACHE_KEY"
8
-
9
- def initialize(authentication: Bigid::Bgcheck::Auth::Authentication.new,
10
- cache: defined?(Rails) ? Rails.cache : nil,
11
- request_class: Faraday,
12
- base_url: Bigid::Bgcheck::BASE_URL,
13
- token_expiration_time_in_seconds: Bigid::Bgcheck::TOKEN_EXPIRATION)
14
- super(request_class: request_class, base_url: base_url)
15
- @authentication = authentication
16
- @cache = cache
17
- @token_expiration_time_in_seconds = token_expiration_time_in_seconds
18
- end
19
-
20
- def default_headers
21
- super.merge(Authorization: (@cache ? cached_token : auth_token))
22
- end
23
-
24
- private
25
- def auth_token
26
- response = @authentication.login
27
- extract_token(response.body)
28
- end
29
-
30
- def cached_token
31
- @cache.fetch(COOKIE_CACHE_KEY, expires_in: @token_expiration_time_in_seconds.seconds) do
32
- auth_token
33
- end
34
- end
35
-
36
- def extract_token(value)
37
- raise Bigid::Bgcheck::AuthenticationError unless value
38
-
39
- value_json = JSON.parse(value)
40
- "Bearer #{value_json['token']}"
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bigid
4
- module Bgcheck
5
- module Auth
6
- class AuthenticatedResource
7
- def initialize(connection: AuthenticatedConnection.new)
8
- @connection = connection
9
- end
10
- end
11
- end
12
- end
13
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bigid
4
- module Bgcheck
5
- module Auth
6
- class Authentication
7
- def initialize(connection: Connection.new,
8
- username: Bigid::Bgcheck.configuration.username,
9
- password: Bigid::Bgcheck.configuration.password,
10
- token_expiration_time_in_seconds: Bigid::Bgcheck::AUTH_ENDPOINT)
11
- @connection = connection
12
- @token_expiration_time_in_seconds = Bigid::Bgcheck::TOKEN_EXPIRATION
13
- @username = username
14
- @password = password
15
- end
16
-
17
- def login
18
- res = @connection.post(url: "Generate", body: login_body)
19
-
20
- return res if res.status == 200
21
-
22
- raise Bigid::Bgcheck::InvalidCredentialsError if res.status == 401
23
- raise Bigid::Bgcheck::BadRequestError if res.status == 400
24
- raise Bigid::Bgcheck::ServerError if res.status == 500
25
- end
26
-
27
- private
28
- def login_body
29
- {
30
- login: @username,
31
- password: @password,
32
- expires: @token_expiration_time_in_seconds.to_i
33
- }.to_json
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bigid
4
- module Bgcheck
5
- module Auth
6
- class Connection < Bigid::Bgcheck::Integration::Connection
7
- def initialize(request_class: Faraday, base_url: Bigid::Bgcheck::AUTH_ENDPOINT)
8
- super(request_class: request_class, base_url: base_url)
9
- end
10
-
11
- def default_headers
12
- {
13
- 'Content-Type': "application/json",
14
- 'Accept': "application/json"
15
- }
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,120 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bigid
4
- module Bgcheck
5
- module Integration
6
- class Connection
7
- attr_reader :base_url
8
-
9
- def initialize(base_url:, request_class: Faraday)
10
- @request_class = request_class
11
- @base_url = base_url
12
- end
13
-
14
- def get(url: "", params: {}, headers: {})
15
- send_request(
16
- method: :get,
17
- url: url,
18
- params: params,
19
- headers: headers
20
- )
21
- end
22
-
23
- def post(url: "", params: {}, headers: {}, body: {}, multipart: false)
24
- send_request(
25
- method: :post,
26
- url: url,
27
- params: params,
28
- headers: headers,
29
- body: body,
30
- multipart: multipart
31
- )
32
- end
33
-
34
- def put(url: "", params: {}, headers: {}, body: {})
35
- send_request(
36
- method: :put,
37
- url: url,
38
- params: params,
39
- headers: headers,
40
- body: body
41
- )
42
- end
43
-
44
- def patch(url: "", params: {}, headers: {}, body: {})
45
- send_request(
46
- method: :patch,
47
- url: url,
48
- params: params,
49
- headers: headers,
50
- body: body
51
- )
52
- end
53
-
54
- def delete(url: "", params: {}, headers: {}, body: {})
55
- send_request(
56
- method: :delete,
57
- url: url,
58
- params: params,
59
- headers: headers,
60
- body: body
61
- )
62
- end
63
-
64
- def default_headers
65
- {}
66
- end
67
-
68
- private
69
- def send_request(method:, url:, params:, headers:, body: nil, multipart: false)
70
- connection = multipart ? multipart_connection : @request_class.new(url: @base_url)
71
-
72
- merged_headers = default_headers.merge(headers)
73
-
74
- request = build_request(
75
- method, connection.build_url(url).to_s, params, merged_headers, body
76
- )
77
-
78
- result =
79
- connection.send(method) do |request|
80
- request.url(url)
81
- request.params = params
82
- request.headers = merged_headers
83
- request.body = body if body
84
- end
85
-
86
- build_response(request, result.status, result.headers, result.body)
87
- end
88
-
89
- def multipart_connection
90
- @request_class.new(url: @base_url) do |conn|
91
- conn.use Bigid::Bgcheck::Integration::MultipartFlat
92
- conn.request :url_encoded
93
- conn.adapter @request_class.default_adapter
94
- end
95
- end
96
-
97
- def build_request(method, url, params, headers, body)
98
- Bigid::Bgcheck::Integration::Request.new(
99
- method: method,
100
- url: url,
101
- params: params,
102
- headers: headers,
103
- body: body,
104
- time: Time.now.utc
105
- )
106
- end
107
-
108
- def build_response(request, status, headers, body)
109
- Bigid::Bgcheck::Integration::Response.new(
110
- request: request,
111
- status: status,
112
- headers: headers,
113
- body: body,
114
- time: Time.now.utc
115
- )
116
- end
117
- end
118
- end
119
- end
120
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bigid
4
- module Bgcheck
5
- module Integration
6
- class MultipartFlat < Faraday::Request::Multipart
7
- self.mime_type = "multipart/form-data"
8
- DEFAULT_BOUNDARY_PREFIX = "-----------RubyMultipartPost" unless defined? DEFAULT_BOUNDARY_PREFIX
9
-
10
- def process_params(params, prefix = nil, pieces = nil, &block)
11
- params.inject(pieces || []) do |all, (key, value)|
12
- key = prefix.to_s if prefix
13
-
14
- case value
15
- when Array
16
- values = value.inject([]) { |a, v| a << [nil, v] }
17
- process_params(values, key, all, &block)
18
- when Hash
19
- process_params(value, key, all, &block)
20
- else
21
- all << block.call(key, value)
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bigid
4
- module Bgcheck
5
- module Integration
6
- class Request
7
- attr_reader :method, :url, :params, :headers, :body, :time
8
-
9
- def initialize(attributes)
10
- @method = attributes.fetch(:method)
11
- @url = attributes.fetch(:url)
12
- @params = attributes[:params] || {}
13
- @headers = attributes[:headers] || {}
14
- @body = attributes[:body] || {}
15
- @time = attributes[:time] || Time.current
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bigid
4
- module Bgcheck
5
- module Integration
6
- class Response
7
- attr_reader :request, :status, :headers, :body, :time
8
-
9
- def initialize(attributes)
10
- @request = attributes.fetch(:request)
11
- @status = attributes.fetch(:status)
12
- @headers = attributes[:headers] || {}
13
- @body = attributes[:body] || {}
14
- @time = attributes[:time] || Time.current
15
- end
16
-
17
- def success?
18
- @status.between?(200, 299)
19
- end
20
-
21
- def error?
22
- !success?
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bigid
4
- module Bgcheck
5
- class NotPermissionError < BaseError
6
- end
7
- end
8
- end