zaig 1.0.4 → 1.0.7
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/lib/zaig/already_exists_error.rb +1 -1
- data/lib/zaig/connection.rb +17 -5
- data/lib/zaig/entities/response.rb +29 -2
- data/lib/zaig/external_timeout_error.rb +1 -1
- data/lib/zaig/field_validation_error.rb +1 -1
- data/lib/zaig/registration.rb +9 -9
- data/lib/zaig/registration_payload.rb +17 -9
- data/lib/zaig/server_error.rb +1 -1
- data/lib/zaig/server_timeout_error.rb +1 -1
- data/lib/zaig/unexpected_error.rb +1 -1
- data/lib/zaig/unprocessable_entity_error.rb +1 -1
- data/lib/zaig/validation_error.rb +1 -1
- data/lib/zaig/version.rb +1 -1
- data/lib/zaig.rb +14 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8772408f0511d1fe3a5de65ddf6344af3d32754bdb7ce95252a05cb3e3cb144c
|
4
|
+
data.tar.gz: d01ca6b7f88430671f09a61a1af872650438113fac5bce59aa74838808b267cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bacc2f06a07747edfff29022645d937cca069244b7857604bcebb0926578a498a3224c62153e8b5d18d40bc5754ed61dc29701db2bae3cab247db95b73cee06d
|
7
|
+
data.tar.gz: f1d7438aae92727b67056b38ddea0e39760ecc9ae925883682faed8b5ef4740cbdc0d9fd5b691740087b72b4555b95e0f45c915658ba8e14eb7f0d9450b06bf2
|
data/lib/zaig/connection.rb
CHANGED
@@ -3,18 +3,30 @@
|
|
3
3
|
module Zaig
|
4
4
|
# Class to instance a authenticated connection object.
|
5
5
|
class Connection < Flash::Integration::Connection
|
6
|
-
def initialize(request_class: Faraday, base_url: Zaig.configuration.base_url
|
7
|
-
@
|
6
|
+
def initialize(request_class: Faraday, base_url: Zaig.configuration.base_url)
|
7
|
+
@jwt_algorithm = Zaig.configuration.jwt_algorithm
|
8
|
+
@jwt_exp_time = Zaig.configuration.jwt_exp_time
|
9
|
+
@jwt_secret = Zaig.configuration.jwt_secret
|
10
|
+
@jwt_user = Zaig.configuration.jwt_user
|
8
11
|
|
9
12
|
super(request_class: request_class, base_url: base_url)
|
10
13
|
end
|
11
14
|
|
12
15
|
def default_headers
|
13
|
-
{
|
16
|
+
headers = {
|
14
17
|
"Content-Type": "application/json",
|
15
|
-
Accept: "application/json"
|
16
|
-
"x-api-key": @access_token
|
18
|
+
Accept: "application/json"
|
17
19
|
}
|
20
|
+
|
21
|
+
return headers if @jwt_secret.nil? || @jwt_secret.empty?
|
22
|
+
|
23
|
+
headers[:Authorization] = "Bearer #{access_token}"
|
24
|
+
headers
|
18
25
|
end
|
26
|
+
|
27
|
+
private
|
28
|
+
def access_token
|
29
|
+
JWT.encode({ exp: @jwt_exp_time, user: @jwt_user }, @jwt_secret, @jwt_algorithm)
|
30
|
+
end
|
19
31
|
end
|
20
32
|
end
|
@@ -7,9 +7,18 @@ module Zaig
|
|
7
7
|
attr_reader :analysis_status, :credit_proposal_legal_person_key, :message,
|
8
8
|
:raw_data, :reason, :request, :status_code, :zaig_id
|
9
9
|
|
10
|
+
# Collection with all the approval statuses.
|
11
|
+
APPROVAL_STATUS = %i[automatically_approved manually_approved].freeze
|
12
|
+
|
13
|
+
# Collection with all the pending statuses.
|
14
|
+
PENDING_STATUS = %i[pending in_manual_analysis in_manual_analysis].freeze
|
15
|
+
|
16
|
+
# Colllection with all the reproval statuses.
|
17
|
+
REPROVAL_STATUS = %i[automatically_reproved manually_reproved].freeze
|
18
|
+
|
10
19
|
def initialize(analysis_status: nil, credit_proposal_legal_person_key: nil, message: nil,
|
11
20
|
raw_data: nil, reason: nil, request: nil, status_code: nil, zaig_id: nil)
|
12
|
-
@analysis_status = analysis_status
|
21
|
+
@analysis_status = analysis_status.nil? ? nil : analysis_status.to_s.strip.downcase.to_sym
|
13
22
|
@credit_proposal_legal_person_key = credit_proposal_legal_person_key
|
14
23
|
@message = message
|
15
24
|
@raw_data = raw_data
|
@@ -19,9 +28,27 @@ module Zaig
|
|
19
28
|
@zaig_id = zaig_id
|
20
29
|
end
|
21
30
|
|
31
|
+
# Retrieve all the available statuses.
|
32
|
+
def self.statuses
|
33
|
+
%i[automatically_approved automatically_reproved in_manual_analysis manually_approved manually_reproved waiting_for_data pending]
|
34
|
+
end
|
35
|
+
|
36
|
+
# Check if the registration is approved.
|
22
37
|
def approved?
|
23
|
-
analysis_status
|
38
|
+
APPROVAL_STATUS.include?(analysis_status)
|
24
39
|
end
|
40
|
+
|
41
|
+
# Check if the registration still not done.
|
42
|
+
def pending?
|
43
|
+
PENDING_STATUS.include?(analysis_status)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Check if the registration is reproved.
|
47
|
+
def rejected?
|
48
|
+
REPROVAL_STATUS.include?(analysis_status)
|
49
|
+
end
|
50
|
+
|
51
|
+
alias not_approved? rejected?
|
25
52
|
end
|
26
53
|
end
|
27
54
|
end
|
data/lib/zaig/registration.rb
CHANGED
@@ -17,9 +17,7 @@ module Zaig
|
|
17
17
|
def call(obj)
|
18
18
|
payload = @registration_payload.call(obj)
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
res = @connection.post(url: (req_endpoint.nil? ? ENDPOINT : req_endpoint), body: payload.to_json)
|
20
|
+
res = @connection.post(url: Zaig.configuration.registration_endpoint, body: payload.to_json)
|
23
21
|
|
24
22
|
verify_response(res)
|
25
23
|
|
@@ -56,7 +54,9 @@ module Zaig
|
|
56
54
|
raise error
|
57
55
|
end
|
58
56
|
|
59
|
-
|
57
|
+
title = parsed_res[:resposta_zaig][:conteudo][:title]
|
58
|
+
description = parsed_res[:resposta_zaig][:conteudo][:description]
|
59
|
+
zaig_msg = "#{title}: #{description}"
|
60
60
|
zaig_http_status = parsed_res[:resposta_zaig][:status]
|
61
61
|
|
62
62
|
raise_error_by_zaig_status(zaig_msg, zaig_http_status)
|
@@ -65,15 +65,15 @@ module Zaig
|
|
65
65
|
def raise_error_by_zaig_status(msg, status)
|
66
66
|
case status
|
67
67
|
when 400
|
68
|
-
raise ::Zaig::FieldValidationError
|
68
|
+
raise ::Zaig::FieldValidationError.new msg
|
69
69
|
when 408
|
70
|
-
raise ::Zaig::ExternalTimeoutError
|
70
|
+
raise ::Zaig::ExternalTimeoutError.new msg
|
71
71
|
when 409
|
72
|
-
raise ::Zaig::AlreadyExistsError
|
72
|
+
raise ::Zaig::AlreadyExistsError.new msg
|
73
73
|
when 422
|
74
|
-
raise ::Zaig::UnprocessableEntityError
|
74
|
+
raise ::Zaig::UnprocessableEntityError.new msg
|
75
75
|
else
|
76
|
-
raise ::Zaig::UnexpectedError
|
76
|
+
raise ::Zaig::UnexpectedError.new msg
|
77
77
|
end
|
78
78
|
end
|
79
79
|
end
|
@@ -6,7 +6,7 @@ module Zaig
|
|
6
6
|
include Singleton
|
7
7
|
|
8
8
|
def call(obj)
|
9
|
-
{
|
9
|
+
payload = {
|
10
10
|
address: build_address(obj[:address]),
|
11
11
|
client_category: obj[:client_category],
|
12
12
|
constitution_date: obj[:constitution_date],
|
@@ -15,18 +15,19 @@ module Zaig
|
|
15
15
|
credit_type: obj[:credit_type] || "clean",
|
16
16
|
document_number: CNPJ.new(obj[:document_number]).formatted,
|
17
17
|
email: obj[:email],
|
18
|
-
financial: obj.key?("financial") ? build_financial(obj[:financial]) : nil,
|
19
|
-
guarantors: obj.key?("guarantors") ? build_shareholders(obj[:guarantors]) : nil,
|
20
18
|
id: obj[:id],
|
21
19
|
legal_name: obj[:legal_name],
|
22
20
|
monthly_revenue: format_money(obj[:monthly_revenue], require_positive: true),
|
23
21
|
phones: build_phones(obj[:phones]),
|
24
22
|
shareholders: build_shareholders(obj[:shareholders]),
|
25
|
-
|
26
|
-
scr_parameters: obj.key?("scr_parameters") ? build_scr_parameters(obj[:scr_parameters]) : nil,
|
27
|
-
trading_name: obj[:trading_name],
|
28
|
-
warrants: obj.key?("warrants") ? build_warrants(obj[:warrants]) : nil
|
23
|
+
trading_name: obj[:trading_name]
|
29
24
|
}
|
25
|
+
payload[:guarantors] = build_shareholders(obj[:guarantors]) if obj.key?(:guarantors)
|
26
|
+
payload[:financial] = build_financial(obj[:financial]) if obj.key?(:financial)
|
27
|
+
payload[:scr_parameters] = build_scr_parameters(obj[:scr_parameters]) if obj.key?(:scr_parameters)
|
28
|
+
payload[:source] = build_source(obj[:source]) if obj.key?(:source)
|
29
|
+
payload[:warrants] = build_warrants(obj[:warrants]) if obj.key?(:warrants)
|
30
|
+
payload
|
30
31
|
end
|
31
32
|
|
32
33
|
private
|
@@ -76,10 +77,10 @@ module Zaig
|
|
76
77
|
declared_assets: format_money(s[:declared_assets]),
|
77
78
|
document_number: CPF.new(s[:document_number]).formatted,
|
78
79
|
email: s[:email],
|
79
|
-
father_name: s[:father_name],
|
80
|
+
father_name: filter_blank(s[:father_name]),
|
80
81
|
gender: s[:gender],
|
81
82
|
monthly_income: format_money(s[:monthly_income]),
|
82
|
-
mother_name: s[:mother_name],
|
83
|
+
mother_name: filter_blank(s[:mother_name]),
|
83
84
|
name: s[:name],
|
84
85
|
nationality: s[:nationality],
|
85
86
|
occupation: s[:occupation],
|
@@ -161,7 +162,14 @@ module Zaig
|
|
161
162
|
signers
|
162
163
|
end
|
163
164
|
|
165
|
+
def filter_blank(value)
|
166
|
+
return value if value.nil?
|
167
|
+
|
168
|
+
value.strip == "" ? nil : value
|
169
|
+
end
|
170
|
+
|
164
171
|
def format_cep(cep)
|
172
|
+
cep = cep.delete("-")
|
165
173
|
cep.gsub(/[^0-9]/, "").insert(5, "-")
|
166
174
|
end
|
167
175
|
end
|
data/lib/zaig/server_error.rb
CHANGED
data/lib/zaig/version.rb
CHANGED
@@ -8,5 +8,5 @@ module Zaig
|
|
8
8
|
# Major - Incremented for incompatible changes with previous release (or big enough new features)
|
9
9
|
# Minor - Incremented for new backwards-compatible features + deprecations
|
10
10
|
# Patch - Incremented for backwards-compatible bug fixes
|
11
|
-
VERSION = "1.0.
|
11
|
+
VERSION = "1.0.7"
|
12
12
|
end
|
data/lib/zaig.rb
CHANGED
@@ -48,6 +48,19 @@ module Zaig
|
|
48
48
|
|
49
49
|
# Basic configuration settings
|
50
50
|
class Configuration
|
51
|
-
attr_accessor :
|
51
|
+
attr_accessor :base_url, :jwt_secret, :jwt_user
|
52
|
+
attr_writer :jwt_algorithm, :jwt_exp_time, :registration_endpoint
|
53
|
+
|
54
|
+
def jwt_algorithm
|
55
|
+
@jwt_algorithm ||= "HS256"
|
56
|
+
end
|
57
|
+
|
58
|
+
def jwt_exp_time
|
59
|
+
@jwt_exp_time ||= 1_658_439_475
|
60
|
+
end
|
61
|
+
|
62
|
+
def registration_endpoint
|
63
|
+
@registration_endpoint ||= "zaig/consulta_de_credito"
|
64
|
+
end
|
52
65
|
end
|
53
66
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zaig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danilo Carolino
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cpf_cnpj
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jwt
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: singleton
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|