zaig 1.0.4 → 1.0.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|