bigid_bgcheck 0.1.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![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
|
+
[![bigid_bgcheck](https://github.com/Quasar-Flash/bigid-bgcheck-ruby/actions/workflows/ruby.yml/badge.svg)](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
|