bigid_bgcheck 0.1.1 → 0.3.0
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/CHANGELOG.md +18 -0
- data/LICENSE.txt +1 -1
- data/README.md +21 -20
- data/Rakefile +1 -1
- data/lib/bigid/bgcheck/request.rb +8 -4
- data/lib/bigid/bgcheck/result.rb +14 -8
- data/lib/bigid/bgcheck/version.rb +1 -1
- data/lib/bigid_bgcheck.rb +20 -41
- data/lib/locales/en.yml +17 -0
- data/lib/locales/pt-BR.yml +17 -0
- data/spec/bigid/bgcheck/bad_request_error_spec.rb +7 -0
- data/spec/bigid/bgcheck/base_error_spec.rb +7 -0
- data/spec/{lib → bigid}/bgcheck/doc_type_spec.rb +0 -1
- data/spec/bigid/bgcheck/document_not_supported_error_spec.rb +7 -0
- data/spec/bigid/bgcheck/internal_error_spec.rb +7 -0
- data/spec/bigid/bgcheck/invalid_credentials_error_spec.rb +7 -0
- data/spec/bigid/bgcheck/invalid_document_value_error_spec.rb +7 -0
- data/spec/bigid/bgcheck/no_info_error_spec.rb +7 -0
- data/spec/bigid/bgcheck/request_spec.rb +99 -0
- data/spec/{lib → bigid}/bgcheck/result_code_spec.rb +0 -1
- data/spec/bigid/bgcheck/server_error_spec.rb +7 -0
- data/spec/bigid_bgcheck_spec.rb +4 -23
- data/spec/factories/result.rb +45 -0
- data/spec/spec_helper.rb +29 -7
- data/spec/support/shared_examples/errors_shared_examples.rb +53 -0
- metadata +83 -45
- data/lib/bigid/bgcheck/auth/authenticated_connection.rb +0 -45
- data/lib/bigid/bgcheck/auth/authenticated_resource.rb +0 -13
- data/lib/bigid/bgcheck/auth/authentication.rb +0 -38
- data/lib/bigid/bgcheck/auth/connection.rb +0 -20
- data/lib/bigid/bgcheck/integration/connection.rb +0 -120
- data/lib/bigid/bgcheck/integration/multipart_flat.rb +0 -28
- data/lib/bigid/bgcheck/integration/request.rb +0 -20
- data/lib/bigid/bgcheck/integration/response.rb +0 -27
- data/lib/bigid/bgcheck/not_permission_error.rb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d94fea79e3d064b136018dea55150a1839ce25218b82054626a1c32e05495961
|
4
|
+
data.tar.gz: 55164f99a7d2804515214a8b7db4610e04d5a1a0270bf94c2f8da188534206a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2a7bc286c6fabb63e6524c8882923414c7e940016fc9952fd2dd6f6484e6518df3ab910e4df21f205b957def7bbb698fbdfedd58bb7ade69671b251335d3026
|
7
|
+
data.tar.gz: 7f4218efcdff8cffacee26fbce626d3d14339f776fe0017657ef9b254157ce7e4a1c75e2c4db8467bc3baf760ffb48241838317cb730b00d6532917aad6f50c3
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# CHANGELOG for bigid_bgcheck
|
2
2
|
|
3
|
+
## v0.3.0
|
4
|
+
|
5
|
+
* Bump "bigid_auth" version from v0.1.0 to v0.2.0
|
6
|
+
|
7
|
+
## v0.2.0
|
8
|
+
|
9
|
+
Features
|
10
|
+
|
11
|
+
* Add fields to service return: "raw_data", "score_details", "related_score_details" and "raw_response" (the complete json file)
|
12
|
+
|
13
|
+
## v0.1.3
|
14
|
+
|
15
|
+
* Fix a problem with the locale initialization in Rails projects
|
16
|
+
|
17
|
+
## v0.1.2
|
18
|
+
|
19
|
+
* Move auth service to an external package
|
20
|
+
|
3
21
|
## v0.1.1
|
4
22
|
|
5
23
|
* Fix a problem with the credentials when its get by the env variables
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -3,19 +3,19 @@ BigId Background Check's Library for Ruby
|
|
3
3
|
|
4
4
|
[](https://badge.fury.io/rb/bigid_bgcheck)
|
5
5
|
[](https://travis-ci.com/Quasar-Flash/bigid-bgcheck-ruby)
|
6
|
+
[](https://github.com/Quasar-Flash/bigid-bgcheck-ruby/actions/workflows/ruby.yml)
|
6
7
|
|
7
|
-
|
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
|
8
|
+
Requirements
|
14
9
|
-----------------
|
15
10
|
|
16
11
|
- Ruby: Any version
|
17
12
|
- Bundler
|
18
13
|
|
14
|
+
Included Modules
|
15
|
+
-----------------
|
16
|
+
|
17
|
+
- [bigid-auth-ruby](https://github.com/Quasar-Flash/bigid-auth-ruby) - BigID API authentication module
|
18
|
+
|
19
19
|
Global Installation
|
20
20
|
-----------------
|
21
21
|
|
@@ -25,35 +25,36 @@ Installation for Rails
|
|
25
25
|
-----------------
|
26
26
|
|
27
27
|
# Add to the Gemfile
|
28
|
-
gem
|
28
|
+
gem "bigid_bgcheck", "~> 0.2"
|
29
|
+
gem "bigid_bgcheck", github: "Quasar-Flash/bigid-bgcheck-ruby"
|
29
30
|
|
30
31
|
Setting the BigID credentials
|
31
32
|
-----------------
|
32
33
|
|
33
34
|
# Set the env variables
|
34
|
-
ENV[
|
35
|
-
ENV[
|
35
|
+
ENV["BIGID_USERNAME"] = "your_username"
|
36
|
+
ENV["BIGID_PASSWORD"] = "your_password"
|
36
37
|
|
37
38
|
Setting the BigID credentials - Rails Project
|
38
39
|
-----------------
|
39
40
|
|
40
|
-
Create the config/initializers/
|
41
|
+
Create the config/initializers/bigid.rb file and define:
|
41
42
|
|
42
43
|
# Set the env variables
|
43
|
-
Bigid
|
44
|
-
config.username =
|
45
|
-
config.password =
|
44
|
+
Bigid.configure do |config|
|
45
|
+
config.username = "your_username"
|
46
|
+
config.password = "your_password"
|
46
47
|
end
|
47
48
|
|
48
49
|
Applying a background check
|
49
50
|
-----------------
|
50
51
|
|
51
|
-
require
|
52
|
+
require "bigid_bgcheck"
|
52
53
|
|
53
54
|
Bigid::Bgcheck::Request.new.call(
|
54
|
-
document:
|
55
|
-
document_type:
|
56
|
-
group:
|
55
|
+
document: "000.000.000-00",
|
56
|
+
document_type: "CPF",
|
57
|
+
group: "Default"
|
57
58
|
)
|
58
59
|
|
59
60
|
Result Example
|
@@ -77,8 +78,8 @@ Searching the [issues](https://github.com/Quasar-Flash/bigid-bgcheck-ruby/issues
|
|
77
78
|
Contributing
|
78
79
|
-----------------
|
79
80
|
|
80
|
-
- Check out the latest master to make sure the feature hasn
|
81
|
-
- Check out the issue tracker to make sure someone already hasn
|
81
|
+
- Check out the latest master to make sure the feature hasn"t been implemented or the bug hasn't been fixed yet;
|
82
|
+
- Check out the issue tracker to make sure someone already hasn"t requested it and/or contributed it;
|
82
83
|
- Fork the project;
|
83
84
|
- Start a feature/bugfix branch;
|
84
85
|
- Commit and push until you are happy with your contribution;
|
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Bigid
|
4
4
|
module Bgcheck
|
5
|
-
class Request < Bigid::
|
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
|
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)
|
@@ -47,11 +47,15 @@ module Bigid
|
|
47
47
|
|
48
48
|
Bigid::Bgcheck::Result.new(
|
49
49
|
approved: ResultCode.approved?(body["ResultCode"]),
|
50
|
-
ticket_id: body["TicketId"],
|
51
50
|
code: body["ResultCode"],
|
51
|
+
score_details: body["ScoreDetails"],
|
52
|
+
limit_score: body["LimitScore"],
|
52
53
|
message: body["ResultMessage"],
|
54
|
+
raw_data: body["RawData"],
|
55
|
+
raw_response: body.to_json,
|
56
|
+
related_score_details: body["RelatedScoreDetails"],
|
53
57
|
score: body["Score"],
|
54
|
-
|
58
|
+
ticket_id: body["TicketId"]
|
55
59
|
)
|
56
60
|
end
|
57
61
|
end
|
data/lib/bigid/bgcheck/result.rb
CHANGED
@@ -3,15 +3,21 @@
|
|
3
3
|
module Bigid
|
4
4
|
module Bgcheck
|
5
5
|
class Result
|
6
|
-
attr_accessor :approved, :
|
6
|
+
attr_accessor :approved, :code, :score_details, :limit_score, :message, :raw_data,
|
7
|
+
:raw_response, :related_score_details, :score, :ticket_id
|
7
8
|
|
8
|
-
def initialize(approved:,
|
9
|
-
|
10
|
-
@
|
11
|
-
@code
|
12
|
-
@
|
13
|
-
@
|
14
|
-
@
|
9
|
+
def initialize(approved:, code:, score_details:, limit_score:, message:, raw_data:, raw_response:,
|
10
|
+
related_score_details:, score:, ticket_id:)
|
11
|
+
@approved = approved
|
12
|
+
@code = code
|
13
|
+
@score_details = score_details
|
14
|
+
@limit_score = limit_score
|
15
|
+
@message = message
|
16
|
+
@raw_data = raw_data
|
17
|
+
@raw_response = raw_response
|
18
|
+
@related_score_details = related_score_details
|
19
|
+
@score = score
|
20
|
+
@ticket_id = ticket_id
|
15
21
|
end
|
16
22
|
end
|
17
23
|
end
|
@@ -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.
|
12
|
+
VERSION = "0.3.0"
|
13
13
|
end
|
14
14
|
end
|
data/lib/bigid_bgcheck.rb
CHANGED
@@ -1,70 +1,49 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "faraday"
|
4
3
|
require "i18n"
|
5
4
|
require "json"
|
5
|
+
require "cpf_cnpj"
|
6
6
|
|
7
|
-
require "
|
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/
|
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
|
-
|
34
|
-
|
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
|
25
|
+
I18n.load_path += Dir[File.join(__dir__, "locales", "**/*.yml")]
|
26
|
+
I18n.reload! if I18n.backend.initialized?
|
39
27
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
def configuration
|
44
|
-
@configuration ||= Configuration.new
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def self.configure
|
49
|
-
self.configuration ||= Configuration.new
|
28
|
+
module Bigid
|
29
|
+
class << self
|
30
|
+
attr_writer :configuration
|
50
31
|
|
51
|
-
|
32
|
+
def configuration
|
33
|
+
@configuration ||= Configuration.new
|
52
34
|
end
|
35
|
+
end
|
53
36
|
|
54
|
-
|
55
|
-
|
37
|
+
def self.configure
|
38
|
+
self.configuration ||= Configuration.new
|
56
39
|
|
57
|
-
|
58
|
-
|
59
|
-
end
|
40
|
+
yield(configuration)
|
41
|
+
end
|
60
42
|
|
61
|
-
|
62
|
-
|
63
|
-
end
|
64
|
-
end
|
43
|
+
class Configuration
|
44
|
+
end
|
65
45
|
|
66
|
-
|
67
|
-
|
68
|
-
I18n.default_locale = :en
|
46
|
+
module Bgcheck
|
47
|
+
SRV_ENDPOINT = "backgroundcheck"
|
69
48
|
end
|
70
49
|
end
|
data/lib/locales/en.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
en:
|
2
|
+
errors:
|
3
|
+
bigid:
|
4
|
+
auth:
|
5
|
+
authentication_error: An error ocurred during the authentication
|
6
|
+
bad_request_error: The request body or format is invalid
|
7
|
+
invalid_credentials_error: The credentials informed are invalid
|
8
|
+
server_error: An internal server error ocurred
|
9
|
+
bgcheck:
|
10
|
+
bad_request_error: The request body or format is invalid
|
11
|
+
document_not_supported_error: The document type is not supported
|
12
|
+
internal_error: An internal error on the BigId server ocurred
|
13
|
+
invalid_document_value_error: The document value is invalid
|
14
|
+
invalid_credentials_error: The credentials informed are invalid
|
15
|
+
no_info_error: No informations available
|
16
|
+
not_permission_error: Action not allowed
|
17
|
+
server_error: An internal server error ocurred
|
@@ -0,0 +1,17 @@
|
|
1
|
+
'pt-BR':
|
2
|
+
errors:
|
3
|
+
bigid:
|
4
|
+
auth:
|
5
|
+
authentication_error: Ocorreu um erro durante a autenticação
|
6
|
+
bad_request_error: O corpo ou formato da requisição é inválido
|
7
|
+
invalid_credentials_error: As credenciais informadas são inválidas
|
8
|
+
server_error: Ocorreu um erro inesperado no servidor
|
9
|
+
bgcheck:
|
10
|
+
bad_request_error: O corpo ou formato da requisição é inválido
|
11
|
+
document_not_supported_error: O tipo de documento é inválido
|
12
|
+
internal_error: Ocorreu um erro ao verificar a pessoa no BigId
|
13
|
+
invalid_document_value_error: O valor do documento é inválido
|
14
|
+
invalid_credentials_error: As credenciais informadas são inválidas
|
15
|
+
no_info_error: Sem informações disponíveis
|
16
|
+
not_permission_error: Ação não permitida
|
17
|
+
server_error: Ocorreu um erro inesperado no servidor
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
RSpec.describe Bigid::Bgcheck::Request do
|
6
|
+
describe "#call" do
|
7
|
+
let(:connection) { instance_double(Bigid::Auth::AuthenticatedConnection) }
|
8
|
+
let(:body) {
|
9
|
+
{
|
10
|
+
Login: "username_value",
|
11
|
+
parameters: { CNPJ: document },
|
12
|
+
Group: group
|
13
|
+
}.to_json
|
14
|
+
}
|
15
|
+
let(:success_result) { build(:result, :approved) }
|
16
|
+
let(:success_result_response) {
|
17
|
+
JSON.parse({
|
18
|
+
body: {
|
19
|
+
RawData: success_result.raw_data,
|
20
|
+
ScoreDetails: success_result.score_details,
|
21
|
+
RelatedScoreDetails: success_result.related_score_details,
|
22
|
+
LimitScore: success_result.limit_score,
|
23
|
+
ResultCode: success_result.code,
|
24
|
+
ResultMessage: success_result.message,
|
25
|
+
Score: success_result.score,
|
26
|
+
TicketId: success_result.ticket_id
|
27
|
+
}.to_json,
|
28
|
+
status: request_status
|
29
|
+
}.to_json, object_class: OpenStruct)
|
30
|
+
}
|
31
|
+
let(:document) { CNPJ.generate }
|
32
|
+
let(:document_type) { "CNPJ" }
|
33
|
+
let(:group) { "Default" }
|
34
|
+
let(:request_status) { 200 }
|
35
|
+
|
36
|
+
subject { described_class.new.call(document: document, document_type: document_type, group: group) }
|
37
|
+
|
38
|
+
before do
|
39
|
+
allow(Bigid::Auth::AuthenticatedConnection).to receive(:new).and_return(connection)
|
40
|
+
allow(connection).to receive(:post).and_return(success_result_response)
|
41
|
+
end
|
42
|
+
|
43
|
+
describe ".call" do
|
44
|
+
subject { described_class.call(document: document, document_type: document_type, group: group) }
|
45
|
+
|
46
|
+
it { expect(subject).to be_kind_of(Bigid::Bgcheck::Result) }
|
47
|
+
|
48
|
+
it { subject; expect(connection).to have_received(:post) }
|
49
|
+
end
|
50
|
+
|
51
|
+
context "when all parameters are valid" do
|
52
|
+
it { expect(subject).to be_kind_of(Bigid::Bgcheck::Result) }
|
53
|
+
|
54
|
+
it { subject; expect(connection).to have_received(:post) }
|
55
|
+
end
|
56
|
+
|
57
|
+
context "when document type is invalid" do
|
58
|
+
let(:document_type) { "CNP" }
|
59
|
+
|
60
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::DocumentNotSupportedError) }
|
61
|
+
end
|
62
|
+
|
63
|
+
context "when request status is null" do
|
64
|
+
let(:request_status) { nil }
|
65
|
+
|
66
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::InternalError) }
|
67
|
+
end
|
68
|
+
|
69
|
+
context "when request status is server error" do
|
70
|
+
let(:request_status) { 500 }
|
71
|
+
|
72
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::ServerError) }
|
73
|
+
end
|
74
|
+
|
75
|
+
context "when request status is auth error" do
|
76
|
+
let(:request_status) { 401 }
|
77
|
+
|
78
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::InvalidCredentialsError) }
|
79
|
+
end
|
80
|
+
|
81
|
+
context "when request status is bad request" do
|
82
|
+
let(:request_status) { 400 }
|
83
|
+
|
84
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::BadRequestError) }
|
85
|
+
end
|
86
|
+
|
87
|
+
context "when the result code is empty" do
|
88
|
+
let(:success_result) { build(:result, :approved, code: nil) }
|
89
|
+
|
90
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::InvalidDocumentValueError) }
|
91
|
+
end
|
92
|
+
|
93
|
+
context "when the result code is empty" do
|
94
|
+
let(:success_result) { build(:result, :approved, code: Bigid::Bgcheck::ResultCode::NO_INFO) }
|
95
|
+
|
96
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::NoInfoError) }
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|