bigid_bgcheck 0.1.3 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/LICENSE.txt +1 -1
- data/README.md +60 -29
- data/Rakefile +1 -1
- data/lib/bigid/bgcheck/request.rb +6 -2
- data/lib/bigid/bgcheck/result.rb +14 -8
- data/lib/bigid/bgcheck/version.rb +1 -1
- data/lib/bigid_bgcheck.rb +15 -15
- data/spec/bigid/bgcheck/bad_request_error_spec.rb +5 -0
- data/spec/bigid/bgcheck/base_error_spec.rb +5 -0
- data/spec/{lib → bigid}/bgcheck/doc_type_spec.rb +0 -3
- data/spec/bigid/bgcheck/document_not_supported_error_spec.rb +5 -0
- data/spec/bigid/bgcheck/internal_error_spec.rb +5 -0
- data/spec/bigid/bgcheck/invalid_credentials_error_spec.rb +5 -0
- data/spec/bigid/bgcheck/invalid_document_value_error_spec.rb +5 -0
- data/spec/bigid/bgcheck/no_info_error_spec.rb +5 -0
- data/spec/bigid/bgcheck/request_spec.rb +97 -0
- data/spec/{lib → bigid}/bgcheck/result_code_spec.rb +0 -3
- data/spec/bigid/bgcheck/server_error_spec.rb +5 -0
- data/spec/bigid_bgcheck_spec.rb +4 -25
- data/spec/factories/result.rb +45 -0
- data/spec/spec_helper.rb +29 -7
- data/spec/support/shared_examples/errors_shared_examples.rb +51 -0
- metadata +86 -70
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be95a78ca1f565303461532c086f52e0fdc83dcfac235fed73c995f9f81493e1
|
4
|
+
data.tar.gz: 5fdeb2b9f0a5aeb97282cd55289030cd85584ab6da1879cc480c46590128e0a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9facd77ce7d71802b439c4e8cd074f8729f0d7de4492430f0de893e0712aecad2d7dcd2296845601477848670508b1423b90f077dceeb483993951207b47967b
|
7
|
+
data.tar.gz: c55c18f21e057426a1e634a731106a13a85028c2f2327d00b969b98917e047cfadd646eaa372ef97524aa34160acc4af2681d8cd25467ba24f2ce20c64647873
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# CHANGELOG for bigid_bgcheck
|
2
2
|
|
3
|
+
## v0.3.1-20220202 - Danilo Carolino
|
4
|
+
|
5
|
+
* [QC-79](https://qflash.atlassian.net/jira/software/projects/QC/boards/31?selectedIssue=QC-79)
|
6
|
+
Reduzir uso de pipelines em projetos Ruby [Dependabot]
|
7
|
+
* Bump Ruby version to v3.1.0
|
8
|
+
|
9
|
+
## v0.3.0
|
10
|
+
|
11
|
+
* Bump "bigid_auth" version from v0.1.0 to v0.2.0
|
12
|
+
|
13
|
+
## v0.2.0
|
14
|
+
|
15
|
+
Features
|
16
|
+
|
17
|
+
* Add fields to service return: "raw_data", "score_details", "related_score_details" and "raw_response" (the complete json file)
|
18
|
+
|
3
19
|
## v0.1.3
|
4
20
|
|
5
21
|
* Fix a problem with the locale initialization in Rails projects
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,26 @@
|
|
1
1
|
BigId Background Check's Library for Ruby
|
2
2
|
==============
|
3
3
|
|
4
|
+
Build Status
|
5
|
+
-----------------
|
6
|
+
|
4
7
|
[![Gem Version](https://badge.fury.io/rb/bigid_bgcheck.svg)](https://badge.fury.io/rb/bigid_bgcheck)
|
5
|
-
[![
|
8
|
+
[![bigid_bgcheck](https://github.com/Quasar-Flash/bigid_bgcheck/actions/workflows/ruby.yml/badge.svg)](https://github.com/Quasar-Flash/bigid_bgcheck/actions/workflows/ruby.yml)
|
9
|
+
[![Quality Gate Status](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=alert_status&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
10
|
+
[![Coverage](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=coverage&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
11
|
+
[![Maintainability Rating](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=sqale_rating&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
12
|
+
|
13
|
+
Project Scores
|
14
|
+
-----------------
|
15
|
+
|
16
|
+
[![Bugs](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=bugs&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
17
|
+
[![Code Smells](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=code_smells&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
18
|
+
[![Duplicated Lines (%)](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=duplicated_lines_density&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
19
|
+
[![Lines of Code](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=ncloc&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
20
|
+
[![Reliability Rating](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=reliability_rating&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
21
|
+
[![Security Rating](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=security_rating&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
22
|
+
[![Technical Debt](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=sqale_index&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
23
|
+
[![Vulnerabilities](https://sonarqube.eks.qflash.com.br/api/project_badges/measure?project=Quasar-Flash_bigid_bgcheck&metric=vulnerabilities&token=23b79ee0eebe63611e370ffb911d9be245c99154)](https://sonarqube.eks.qflash.com.br/dashboard?id=Quasar-Flash_bigid_bgcheck)
|
6
24
|
|
7
25
|
Requirements
|
8
26
|
-----------------
|
@@ -18,66 +36,79 @@ Included Modules
|
|
18
36
|
Global Installation
|
19
37
|
-----------------
|
20
38
|
|
21
|
-
|
39
|
+
```sh
|
40
|
+
gem install bigid_bgcheck
|
41
|
+
```
|
22
42
|
|
23
43
|
Installation for Rails
|
24
44
|
-----------------
|
25
45
|
|
26
|
-
|
27
|
-
|
46
|
+
```ruby
|
47
|
+
# Add to the Gemfile
|
48
|
+
gem "bigid_bgcheck", "~> 0.3"
|
49
|
+
gem "bigid_bgcheck", github: "Quasar-Flash/bigid_bgcheck"
|
50
|
+
```
|
28
51
|
|
29
52
|
Setting the BigID credentials
|
30
53
|
-----------------
|
31
54
|
|
32
|
-
|
33
|
-
|
34
|
-
|
55
|
+
```ruby
|
56
|
+
# Set the env variables
|
57
|
+
ENV["BIGID_USERNAME"] = "your_username"
|
58
|
+
ENV["BIGID_PASSWORD"] = "your_password"
|
59
|
+
```
|
35
60
|
|
36
61
|
Setting the BigID credentials - Rails Project
|
37
62
|
-----------------
|
38
63
|
|
39
64
|
Create the config/initializers/bigid.rb file and define:
|
40
65
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
66
|
+
```ruby
|
67
|
+
# Set the env variables
|
68
|
+
Bigid.configure do |config|
|
69
|
+
config.username = "your_username"
|
70
|
+
config.password = "your_password"
|
71
|
+
end
|
72
|
+
```
|
46
73
|
|
47
74
|
Applying a background check
|
48
75
|
-----------------
|
49
76
|
|
50
|
-
|
77
|
+
```ruby
|
78
|
+
require "bigid_bgcheck"
|
51
79
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
80
|
+
Bigid::Bgcheck::Request.new.call(
|
81
|
+
document: "000.000.000-00",
|
82
|
+
document_type: "CPF",
|
83
|
+
group: "Default"
|
84
|
+
)
|
85
|
+
```
|
57
86
|
|
58
87
|
Result Example
|
59
88
|
-----------------
|
60
89
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
90
|
+
```ruby
|
91
|
+
#<Bigid::Bgcheck::Result:0x0000560fef3c1068
|
92
|
+
@approved=false,
|
93
|
+
@ticket_id="00000000000000000",
|
94
|
+
@code=-1100,
|
95
|
+
@message="Not Approved",
|
96
|
+
@score=0,
|
97
|
+
@limit_score=0.0>
|
98
|
+
```
|
68
99
|
|
69
100
|
Problems?
|
70
101
|
-----------------
|
71
102
|
|
72
103
|
**Please do not directly email any committers with questions or problems.** A community is best served when discussions are held in public.
|
73
104
|
|
74
|
-
Searching the [issues](https://github.com/Quasar-Flash/
|
105
|
+
Searching the [issues](https://github.com/Quasar-Flash/bigid_bgcheck/issues) for your problem is also a good idea.
|
75
106
|
|
76
107
|
Contributing
|
77
108
|
-----------------
|
78
109
|
|
79
|
-
- Check out the latest master to make sure the feature hasn
|
80
|
-
- Check out the issue tracker to make sure someone already hasn
|
110
|
+
- Check out the latest master to make sure the feature hasn"t been implemented or the bug hasn't been fixed yet;
|
111
|
+
- Check out the issue tracker to make sure someone already hasn"t requested it and/or contributed it;
|
81
112
|
- Fork the project;
|
82
113
|
- Start a feature/bugfix branch;
|
83
114
|
- Commit and push until you are happy with your contribution;
|
@@ -87,7 +118,7 @@ Contributing
|
|
87
118
|
License
|
88
119
|
-----------------
|
89
120
|
|
90
|
-
Please see [LICENSE](https://github.com/Quasar-Flash/
|
121
|
+
Please see [LICENSE](https://github.com/Quasar-Flash/bigid_bgcheck/blob/master/LICENSE.txt) for licensing details.
|
91
122
|
|
92
123
|
Authors
|
93
124
|
-----------------
|
data/Rakefile
CHANGED
@@ -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.1
|
12
|
+
VERSION = "0.3.1"
|
13
13
|
end
|
14
14
|
end
|
data/lib/bigid_bgcheck.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
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
7
|
require "bigid_auth"
|
8
8
|
|
@@ -26,24 +26,24 @@ I18n.load_path += Dir[File.join(__dir__, "locales", "**/*.yml")]
|
|
26
26
|
I18n.reload! if I18n.backend.initialized?
|
27
27
|
|
28
28
|
module Bigid
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
class << self
|
33
|
-
attr_writer :configuration
|
29
|
+
class << self
|
30
|
+
attr_writer :configuration
|
34
31
|
|
35
|
-
|
36
|
-
|
37
|
-
end
|
32
|
+
def configuration
|
33
|
+
@configuration ||= Configuration.new
|
38
34
|
end
|
35
|
+
end
|
39
36
|
|
40
|
-
|
41
|
-
|
37
|
+
def self.configure
|
38
|
+
self.configuration ||= Configuration.new
|
42
39
|
|
43
|
-
|
44
|
-
|
40
|
+
yield(configuration)
|
41
|
+
end
|
45
42
|
|
46
|
-
|
47
|
-
|
43
|
+
class Configuration
|
44
|
+
end
|
45
|
+
|
46
|
+
module Bgcheck
|
47
|
+
SRV_ENDPOINT = "backgroundcheck"
|
48
48
|
end
|
49
49
|
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe Bigid::Bgcheck::Request do
|
4
|
+
describe "#call" do
|
5
|
+
let(:connection) { instance_double(Bigid::Auth::AuthenticatedConnection) }
|
6
|
+
let(:body) {
|
7
|
+
{
|
8
|
+
Login: "username_value",
|
9
|
+
parameters: { CNPJ: document },
|
10
|
+
Group: group
|
11
|
+
}.to_json
|
12
|
+
}
|
13
|
+
let(:success_result) { build(:result, :approved) }
|
14
|
+
let(:success_result_response) {
|
15
|
+
JSON.parse({
|
16
|
+
body: {
|
17
|
+
RawData: success_result.raw_data,
|
18
|
+
ScoreDetails: success_result.score_details,
|
19
|
+
RelatedScoreDetails: success_result.related_score_details,
|
20
|
+
LimitScore: success_result.limit_score,
|
21
|
+
ResultCode: success_result.code,
|
22
|
+
ResultMessage: success_result.message,
|
23
|
+
Score: success_result.score,
|
24
|
+
TicketId: success_result.ticket_id
|
25
|
+
}.to_json,
|
26
|
+
status: request_status
|
27
|
+
}.to_json, object_class: OpenStruct)
|
28
|
+
}
|
29
|
+
let(:document) { CNPJ.generate }
|
30
|
+
let(:document_type) { "CNPJ" }
|
31
|
+
let(:group) { "Default" }
|
32
|
+
let(:request_status) { 200 }
|
33
|
+
|
34
|
+
subject { described_class.new.call(document: document, document_type: document_type, group: group) }
|
35
|
+
|
36
|
+
before do
|
37
|
+
allow(Bigid::Auth::AuthenticatedConnection).to receive(:new).and_return(connection)
|
38
|
+
allow(connection).to receive(:post).and_return(success_result_response)
|
39
|
+
end
|
40
|
+
|
41
|
+
describe ".call" do
|
42
|
+
subject { described_class.call(document: document, document_type: document_type, group: group) }
|
43
|
+
|
44
|
+
it { expect(subject).to be_kind_of(Bigid::Bgcheck::Result) }
|
45
|
+
|
46
|
+
it { subject; expect(connection).to have_received(:post) }
|
47
|
+
end
|
48
|
+
|
49
|
+
context "when all parameters are valid" do
|
50
|
+
it { expect(subject).to be_kind_of(Bigid::Bgcheck::Result) }
|
51
|
+
|
52
|
+
it { subject; expect(connection).to have_received(:post) }
|
53
|
+
end
|
54
|
+
|
55
|
+
context "when document type is invalid" do
|
56
|
+
let(:document_type) { "CNP" }
|
57
|
+
|
58
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::DocumentNotSupportedError) }
|
59
|
+
end
|
60
|
+
|
61
|
+
context "when request status is null" do
|
62
|
+
let(:request_status) { nil }
|
63
|
+
|
64
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::InternalError) }
|
65
|
+
end
|
66
|
+
|
67
|
+
context "when request status is server error" do
|
68
|
+
let(:request_status) { 500 }
|
69
|
+
|
70
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::ServerError) }
|
71
|
+
end
|
72
|
+
|
73
|
+
context "when request status is auth error" do
|
74
|
+
let(:request_status) { 401 }
|
75
|
+
|
76
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::InvalidCredentialsError) }
|
77
|
+
end
|
78
|
+
|
79
|
+
context "when request status is bad request" do
|
80
|
+
let(:request_status) { 400 }
|
81
|
+
|
82
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::BadRequestError) }
|
83
|
+
end
|
84
|
+
|
85
|
+
context "when the result code is empty" do
|
86
|
+
let(:success_result) { build(:result, :approved, code: nil) }
|
87
|
+
|
88
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::InvalidDocumentValueError) }
|
89
|
+
end
|
90
|
+
|
91
|
+
context "when the result code is empty" do
|
92
|
+
let(:success_result) { build(:result, :approved, code: Bigid::Bgcheck::ResultCode::NO_INFO) }
|
93
|
+
|
94
|
+
it { expect { subject }.to raise_error(Bigid::Bgcheck::NoInfoError) }
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
data/spec/bigid_bgcheck_spec.rb
CHANGED
@@ -1,44 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "spec_helper"
|
4
|
-
require "bigid_bgcheck"
|
5
|
-
|
6
3
|
RSpec.describe Bigid::Bgcheck do
|
7
|
-
describe "BASE_URL" do
|
8
|
-
subject { defined? Bigid::Bgcheck::BASE_URL }
|
9
|
-
|
10
|
-
it { expect(subject).to be_truthy }
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "AUTH_ENDPOINT" do
|
14
|
-
subject { defined? Bigid::Bgcheck::AUTH_ENDPOINT }
|
15
|
-
|
16
|
-
it { expect(subject).to be_truthy }
|
17
|
-
end
|
18
|
-
|
19
4
|
describe "SRV_ENDPOINT" do
|
20
5
|
subject { defined? Bigid::Bgcheck::SRV_ENDPOINT }
|
21
6
|
|
22
7
|
it { expect(subject).to be_truthy }
|
23
8
|
end
|
24
9
|
|
25
|
-
describe "TOKEN_EXPIRATION" do
|
26
|
-
subject { defined? Bigid::Bgcheck::TOKEN_EXPIRATION }
|
27
|
-
|
28
|
-
it { expect(subject).to be_truthy }
|
29
|
-
end
|
30
|
-
|
31
10
|
describe ".configure" do
|
32
11
|
before do
|
33
|
-
|
12
|
+
Bigid.configuration = nil
|
34
13
|
ENV.clear
|
35
14
|
end
|
36
15
|
|
37
|
-
subject {
|
16
|
+
subject { Bigid.configuration }
|
38
17
|
|
39
18
|
context "when configuration is defined" do
|
40
19
|
before do
|
41
|
-
|
20
|
+
Bigid.configure do |config|
|
42
21
|
config.username = "username_value"
|
43
22
|
config.password = "password_value"
|
44
23
|
end
|
@@ -77,7 +56,7 @@ RSpec.describe Bigid::Bgcheck do
|
|
77
56
|
ENV["BIGID_USERNAME"] = "username_value"
|
78
57
|
ENV["BIGID_PASSWORD"] = "password_value"
|
79
58
|
|
80
|
-
|
59
|
+
Bigid.configure do |config|
|
81
60
|
config.username = "username_value2"
|
82
61
|
config.password = "password_value2"
|
83
62
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :result, class: "Bigid::Bgcheck::Result" do
|
5
|
+
trait :approved do
|
6
|
+
approved { true }
|
7
|
+
code { Bigid::Bgcheck::ResultCode::APPROVED }
|
8
|
+
score_details { {} }
|
9
|
+
limit_score { 10.0 }
|
10
|
+
message { "Approved" }
|
11
|
+
score { 10.0 }
|
12
|
+
ticket_id { SecureRandom.hex(8) }
|
13
|
+
raw_data { "{}" }
|
14
|
+
raw_response { "{\"ScoreDetails\":#{score_details},\"LimitScore\":#{limit_score},\"ResultCode\":#{code},\"ResultMessage\":\"#{message}\",\"Score\":#{score},\"TicketId\":\"#{ticket_id}\"}" }
|
15
|
+
related_score_details { "{}" }
|
16
|
+
end
|
17
|
+
|
18
|
+
trait :unapproved do
|
19
|
+
approved { false }
|
20
|
+
code { Bigid::Bgcheck::ResultCode::NOT_APPROVED }
|
21
|
+
score_details { }
|
22
|
+
limit_score { 10.0 }
|
23
|
+
message { "Not Approved" }
|
24
|
+
raw_response { "{\"ScoreDetails\":null,\"LimitScore\":10.0,\"ResultCode\":90,\"ResultMessage\":\"Approved\",\"Score\":10.0,\"TicketId\":\"d735711aeb909de9\"}" }
|
25
|
+
score { 1.0 }
|
26
|
+
ticket_id { SecureRandom.hex(8) }
|
27
|
+
end
|
28
|
+
|
29
|
+
initialize_with do
|
30
|
+
new(
|
31
|
+
approved: approved,
|
32
|
+
code: code,
|
33
|
+
score_details: score_details,
|
34
|
+
limit_score: limit_score,
|
35
|
+
message: message,
|
36
|
+
raw_data: raw_data,
|
37
|
+
raw_response: raw_response,
|
38
|
+
related_score_details: related_score_details,
|
39
|
+
score: score,
|
40
|
+
score_details: score_details,
|
41
|
+
ticket_id: ticket_id
|
42
|
+
)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "simplecov"
|
4
|
+
|
5
|
+
SimpleCov.formatters = [SimpleCov::Formatter::HTMLFormatter]
|
6
|
+
SimpleCov.minimum_coverage 70.0
|
7
|
+
|
8
|
+
SimpleCov.start do
|
9
|
+
add_filter "/spec/"
|
10
|
+
minimum_coverage 70
|
11
|
+
minimum_coverage_by_file 50
|
12
|
+
end
|
13
|
+
|
14
|
+
require "bigid_auth"
|
15
|
+
require "bigid/bgcheck/base_error"
|
16
|
+
|
17
|
+
Dir["./spec/support/**/*.rb"].each { |f| require f }
|
18
|
+
Dir["./spec/initializers/**/*.rb"].each { |f| require f }
|
19
|
+
Dir["./lib/**/*.rb"].sort.each { |file| require file }
|
20
|
+
|
3
21
|
require "rubygems"
|
4
22
|
require "bundler"
|
23
|
+
require "bigid_bgcheck"
|
24
|
+
require "factory_bot"
|
25
|
+
require "pry"
|
5
26
|
|
6
27
|
begin
|
7
28
|
Bundler.setup(:default, :development, :test)
|
@@ -12,14 +33,15 @@ rescue Bundler::BundlerError => e
|
|
12
33
|
exit e.status_code
|
13
34
|
end
|
14
35
|
|
15
|
-
|
36
|
+
RSpec.configure do |config|
|
37
|
+
config.include FactoryBot::Syntax::Methods
|
16
38
|
|
17
|
-
|
18
|
-
|
19
|
-
end
|
39
|
+
# Enable flags like --only-failures and --next-failure
|
40
|
+
config.example_status_persistence_file_path = ".rspec_status"
|
20
41
|
|
21
|
-
|
22
|
-
|
42
|
+
config.expect_with :rspec do |c|
|
43
|
+
c.syntax = :expect
|
44
|
+
end
|
23
45
|
end
|
24
46
|
|
25
|
-
|
47
|
+
FactoryBot.find_definitions
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.shared_examples "error" do
|
4
|
+
describe ".initialize" do
|
5
|
+
context "when message parameter is null" do
|
6
|
+
subject { described_class.new.message }
|
7
|
+
|
8
|
+
it { expect(subject).to eq(described_class.default_message) }
|
9
|
+
end
|
10
|
+
|
11
|
+
context "when message parameter is not null" do
|
12
|
+
subject { described_class.new(message).message }
|
13
|
+
|
14
|
+
let(:message) { "message" }
|
15
|
+
|
16
|
+
it { expect(subject).to eq(message) }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe ".default_message" do
|
21
|
+
let(:expected_result) { I18n.t("errors.#{described_class.name.underscore.tr("/", ".")}") }
|
22
|
+
|
23
|
+
subject { described_class.default_message }
|
24
|
+
|
25
|
+
it "searches the default message in I18n using the class name" do
|
26
|
+
expect(subject).to eq(expected_result)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
RSpec.shared_examples "http_error" do
|
32
|
+
include_examples "error"
|
33
|
+
|
34
|
+
describe "#http_status" do
|
35
|
+
subject { described_class.new.http_status }
|
36
|
+
|
37
|
+
it { expect(subject).to eq(described_class::HTTP_STATUS) }
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#status" do
|
41
|
+
subject { described_class.new.status }
|
42
|
+
|
43
|
+
it { expect(subject).to eq(described_class::STATUS) }
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "#status_code" do
|
47
|
+
subject { described_class.new.status_code }
|
48
|
+
|
49
|
+
it { expect(subject).to eq(described_class::STATUS_CODE) }
|
50
|
+
end
|
51
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bigid_bgcheck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danilo Carolino
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bigid_auth
|
@@ -16,27 +16,21 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '0.1'
|
19
|
+
version: '0.2'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '0.1'
|
26
|
+
version: '0.2'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
28
|
+
name: i18n
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
31
|
- - "~>"
|
38
32
|
- !ruby/object:Gem::Version
|
39
|
-
version: 1.
|
33
|
+
version: '1.8'
|
40
34
|
- - ">="
|
41
35
|
- !ruby/object:Gem::Version
|
42
36
|
version: '1.0'
|
@@ -46,106 +40,92 @@ dependencies:
|
|
46
40
|
requirements:
|
47
41
|
- - "~>"
|
48
42
|
- !ruby/object:Gem::Version
|
49
|
-
version: 1.
|
43
|
+
version: '1.8'
|
50
44
|
- - ">="
|
51
45
|
- !ruby/object:Gem::Version
|
52
46
|
version: '1.0'
|
53
47
|
- !ruby/object:Gem::Dependency
|
54
|
-
name:
|
48
|
+
name: json
|
55
49
|
requirement: !ruby/object:Gem::Requirement
|
56
50
|
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: 1.8.0
|
60
51
|
- - ">="
|
61
52
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
53
|
+
version: '2.5'
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '2.7'
|
63
57
|
type: :runtime
|
64
58
|
prerelease: false
|
65
59
|
version_requirements: !ruby/object:Gem::Requirement
|
66
60
|
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 1.8.0
|
70
61
|
- - ">="
|
71
62
|
- !ruby/object:Gem::Version
|
72
|
-
version: '
|
63
|
+
version: '2.5'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '2.7'
|
73
67
|
- !ruby/object:Gem::Dependency
|
74
|
-
name:
|
68
|
+
name: cpf_cnpj
|
75
69
|
requirement: !ruby/object:Gem::Requirement
|
76
70
|
requirements:
|
77
71
|
- - "~>"
|
78
72
|
- !ruby/object:Gem::Version
|
79
|
-
version:
|
73
|
+
version: '0.5'
|
80
74
|
- - ">="
|
81
75
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
76
|
+
version: '0.5'
|
83
77
|
type: :runtime
|
84
78
|
prerelease: false
|
85
79
|
version_requirements: !ruby/object:Gem::Requirement
|
86
80
|
requirements:
|
87
81
|
- - "~>"
|
88
82
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
83
|
+
version: '0.5'
|
90
84
|
- - ">="
|
91
85
|
- !ruby/object:Gem::Version
|
92
|
-
version: '
|
86
|
+
version: '0.5'
|
93
87
|
- !ruby/object:Gem::Dependency
|
94
88
|
name: bundler
|
95
89
|
requirement: !ruby/object:Gem::Requirement
|
96
90
|
requirements:
|
97
91
|
- - ">="
|
98
92
|
- !ruby/object:Gem::Version
|
99
|
-
version: 1.2
|
93
|
+
version: '1.2'
|
100
94
|
type: :development
|
101
95
|
prerelease: false
|
102
96
|
version_requirements: !ruby/object:Gem::Requirement
|
103
97
|
requirements:
|
104
98
|
- - ">="
|
105
99
|
- !ruby/object:Gem::Version
|
106
|
-
version: 1.2
|
100
|
+
version: '1.2'
|
107
101
|
- !ruby/object:Gem::Dependency
|
108
102
|
name: factory_bot
|
109
103
|
requirement: !ruby/object:Gem::Requirement
|
110
104
|
requirements:
|
111
105
|
- - "~>"
|
112
106
|
- !ruby/object:Gem::Version
|
113
|
-
version: 6.
|
114
|
-
type: :development
|
115
|
-
prerelease: false
|
116
|
-
version_requirements: !ruby/object:Gem::Requirement
|
117
|
-
requirements:
|
118
|
-
- - "~>"
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
version: 6.1.0
|
121
|
-
- !ruby/object:Gem::Dependency
|
122
|
-
name: gemsurance
|
123
|
-
requirement: !ruby/object:Gem::Requirement
|
124
|
-
requirements:
|
125
|
-
- - "~>"
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version: '0.10'
|
107
|
+
version: '6.2'
|
128
108
|
type: :development
|
129
109
|
prerelease: false
|
130
110
|
version_requirements: !ruby/object:Gem::Requirement
|
131
111
|
requirements:
|
132
112
|
- - "~>"
|
133
113
|
- !ruby/object:Gem::Version
|
134
|
-
version: '
|
114
|
+
version: '6.2'
|
135
115
|
- !ruby/object:Gem::Dependency
|
136
116
|
name: pry
|
137
117
|
requirement: !ruby/object:Gem::Requirement
|
138
118
|
requirements:
|
139
119
|
- - "~>"
|
140
120
|
- !ruby/object:Gem::Version
|
141
|
-
version: 0.14
|
121
|
+
version: '0.14'
|
142
122
|
type: :development
|
143
123
|
prerelease: false
|
144
124
|
version_requirements: !ruby/object:Gem::Requirement
|
145
125
|
requirements:
|
146
126
|
- - "~>"
|
147
127
|
- !ruby/object:Gem::Version
|
148
|
-
version: 0.14
|
128
|
+
version: '0.14'
|
149
129
|
- !ruby/object:Gem::Dependency
|
150
130
|
name: rake
|
151
131
|
requirement: !ruby/object:Gem::Requirement
|
@@ -172,70 +152,84 @@ dependencies:
|
|
172
152
|
requirements:
|
173
153
|
- - "~>"
|
174
154
|
- !ruby/object:Gem::Version
|
175
|
-
version: 3.10
|
155
|
+
version: '3.10'
|
176
156
|
type: :development
|
177
157
|
prerelease: false
|
178
158
|
version_requirements: !ruby/object:Gem::Requirement
|
179
159
|
requirements:
|
180
160
|
- - "~>"
|
181
161
|
- !ruby/object:Gem::Version
|
182
|
-
version: 3.10
|
162
|
+
version: '3.10'
|
183
163
|
- !ruby/object:Gem::Dependency
|
184
164
|
name: rubocop
|
185
165
|
requirement: !ruby/object:Gem::Requirement
|
186
166
|
requirements:
|
187
167
|
- - "~>"
|
188
168
|
- !ruby/object:Gem::Version
|
189
|
-
version: 1.
|
169
|
+
version: '1.25'
|
190
170
|
type: :development
|
191
171
|
prerelease: false
|
192
172
|
version_requirements: !ruby/object:Gem::Requirement
|
193
173
|
requirements:
|
194
174
|
- - "~>"
|
195
175
|
- !ruby/object:Gem::Version
|
196
|
-
version: 1.
|
176
|
+
version: '1.25'
|
197
177
|
- !ruby/object:Gem::Dependency
|
198
178
|
name: rubocop-packaging
|
199
179
|
requirement: !ruby/object:Gem::Requirement
|
200
180
|
requirements:
|
201
181
|
- - "~>"
|
202
182
|
- !ruby/object:Gem::Version
|
203
|
-
version: 0.5
|
183
|
+
version: '0.5'
|
204
184
|
type: :development
|
205
185
|
prerelease: false
|
206
186
|
version_requirements: !ruby/object:Gem::Requirement
|
207
187
|
requirements:
|
208
188
|
- - "~>"
|
209
189
|
- !ruby/object:Gem::Version
|
210
|
-
version: 0.5
|
190
|
+
version: '0.5'
|
211
191
|
- !ruby/object:Gem::Dependency
|
212
192
|
name: rubocop-performance
|
213
193
|
requirement: !ruby/object:Gem::Requirement
|
214
194
|
requirements:
|
215
195
|
- - "~>"
|
216
196
|
- !ruby/object:Gem::Version
|
217
|
-
version: 1.
|
197
|
+
version: '1.13'
|
218
198
|
type: :development
|
219
199
|
prerelease: false
|
220
200
|
version_requirements: !ruby/object:Gem::Requirement
|
221
201
|
requirements:
|
222
202
|
- - "~>"
|
223
203
|
- !ruby/object:Gem::Version
|
224
|
-
version: 1.
|
204
|
+
version: '1.13'
|
225
205
|
- !ruby/object:Gem::Dependency
|
226
206
|
name: simplecov
|
227
207
|
requirement: !ruby/object:Gem::Requirement
|
228
208
|
requirements:
|
229
209
|
- - "~>"
|
230
210
|
- !ruby/object:Gem::Version
|
231
|
-
version: 0.21
|
211
|
+
version: '0.21'
|
212
|
+
type: :development
|
213
|
+
prerelease: false
|
214
|
+
version_requirements: !ruby/object:Gem::Requirement
|
215
|
+
requirements:
|
216
|
+
- - "~>"
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: '0.21'
|
219
|
+
- !ruby/object:Gem::Dependency
|
220
|
+
name: simplecov-json
|
221
|
+
requirement: !ruby/object:Gem::Requirement
|
222
|
+
requirements:
|
223
|
+
- - "~>"
|
224
|
+
- !ruby/object:Gem::Version
|
225
|
+
version: '0.2'
|
232
226
|
type: :development
|
233
227
|
prerelease: false
|
234
228
|
version_requirements: !ruby/object:Gem::Requirement
|
235
229
|
requirements:
|
236
230
|
- - "~>"
|
237
231
|
- !ruby/object:Gem::Version
|
238
|
-
version: 0.
|
232
|
+
version: '0.2'
|
239
233
|
description: A library to use BigData Corps background check features
|
240
234
|
email:
|
241
235
|
- danilo.carolino@qflash.com.br
|
@@ -263,18 +257,29 @@ files:
|
|
263
257
|
- lib/bigid_bgcheck.rb
|
264
258
|
- lib/locales/en.yml
|
265
259
|
- lib/locales/pt-BR.yml
|
260
|
+
- spec/bigid/bgcheck/bad_request_error_spec.rb
|
261
|
+
- spec/bigid/bgcheck/base_error_spec.rb
|
262
|
+
- spec/bigid/bgcheck/doc_type_spec.rb
|
263
|
+
- spec/bigid/bgcheck/document_not_supported_error_spec.rb
|
264
|
+
- spec/bigid/bgcheck/internal_error_spec.rb
|
265
|
+
- spec/bigid/bgcheck/invalid_credentials_error_spec.rb
|
266
|
+
- spec/bigid/bgcheck/invalid_document_value_error_spec.rb
|
267
|
+
- spec/bigid/bgcheck/no_info_error_spec.rb
|
268
|
+
- spec/bigid/bgcheck/request_spec.rb
|
269
|
+
- spec/bigid/bgcheck/result_code_spec.rb
|
270
|
+
- spec/bigid/bgcheck/server_error_spec.rb
|
266
271
|
- spec/bigid_bgcheck_spec.rb
|
267
|
-
- spec/
|
268
|
-
- spec/lib/bgcheck/result_code_spec.rb
|
272
|
+
- spec/factories/result.rb
|
269
273
|
- spec/spec_helper.rb
|
270
|
-
|
274
|
+
- spec/support/shared_examples/errors_shared_examples.rb
|
275
|
+
homepage: https://github.com/Quasar-Flash/bigid_bgcheck
|
271
276
|
licenses:
|
272
277
|
- MIT
|
273
278
|
metadata:
|
274
|
-
changelog_uri: https://github.com/Quasar-Flash/
|
275
|
-
source_code_uri: https://github.com/Quasar-Flash/
|
276
|
-
bug_tracker_uri: https://github.com/Quasar-Flash/
|
277
|
-
post_install_message:
|
279
|
+
changelog_uri: https://github.com/Quasar-Flash/bigid_bgcheck/blob/master/CHANGELOG.md
|
280
|
+
source_code_uri: https://github.com/Quasar-Flash/bigid_bgcheck
|
281
|
+
bug_tracker_uri: https://github.com/Quasar-Flash/bigid_bgcheck/issues
|
282
|
+
post_install_message:
|
278
283
|
rdoc_options: []
|
279
284
|
require_paths:
|
280
285
|
- lib
|
@@ -282,19 +287,30 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
282
287
|
requirements:
|
283
288
|
- - ">="
|
284
289
|
- !ruby/object:Gem::Version
|
285
|
-
version: '2.
|
290
|
+
version: '2.7'
|
286
291
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
287
292
|
requirements:
|
288
293
|
- - ">="
|
289
294
|
- !ruby/object:Gem::Version
|
290
295
|
version: '0'
|
291
296
|
requirements: []
|
292
|
-
rubygems_version: 3.
|
293
|
-
signing_key:
|
297
|
+
rubygems_version: 3.3.3
|
298
|
+
signing_key:
|
294
299
|
specification_version: 4
|
295
300
|
summary: Bigid Background Check Library
|
296
301
|
test_files:
|
302
|
+
- spec/bigid/bgcheck/bad_request_error_spec.rb
|
303
|
+
- spec/bigid/bgcheck/base_error_spec.rb
|
304
|
+
- spec/bigid/bgcheck/doc_type_spec.rb
|
305
|
+
- spec/bigid/bgcheck/document_not_supported_error_spec.rb
|
306
|
+
- spec/bigid/bgcheck/internal_error_spec.rb
|
307
|
+
- spec/bigid/bgcheck/invalid_credentials_error_spec.rb
|
308
|
+
- spec/bigid/bgcheck/invalid_document_value_error_spec.rb
|
309
|
+
- spec/bigid/bgcheck/no_info_error_spec.rb
|
310
|
+
- spec/bigid/bgcheck/request_spec.rb
|
311
|
+
- spec/bigid/bgcheck/result_code_spec.rb
|
312
|
+
- spec/bigid/bgcheck/server_error_spec.rb
|
297
313
|
- spec/bigid_bgcheck_spec.rb
|
298
|
-
- spec/
|
299
|
-
- spec/lib/bgcheck/doc_type_spec.rb
|
314
|
+
- spec/factories/result.rb
|
300
315
|
- spec/spec_helper.rb
|
316
|
+
- spec/support/shared_examples/errors_shared_examples.rb
|