zaig 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 30513348586e4a10175c951a36ef1ccadce659a39297cb48126d0d9ff12e7273
4
+ data.tar.gz: 92392c3685c0ef19300d596dd366e2be4db979fad0ac90011df0631d4c0762cb
5
+ SHA512:
6
+ metadata.gz: 202bc4d5ed18dd3bf5fb64c287a7964221ade5f56cfd009b23284011da45143c84e5f8700c37bd0e3126cc4a96c272deb629fd46af8e75ae0fcafd3604ef5de8
7
+ data.tar.gz: eca0bb1e343286657059cf407076bd15e1a32a08bf5ff6e693ac713c95fde29fa0501ac0b56f6f29d6f2aafcf1dbd875106379fc26be9d8c0dbd4f9c73d649bd
data/Rakefile ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env rake
2
+ # frozen_string_literal: true
3
+
4
+ begin
5
+ require "bundler/setup"
6
+ rescue LoadError
7
+ puts "You must `gem install bundler` and `bundle install` to run rake tasks"
8
+ end
9
+
10
+ Bundler::GemHelper.install_tasks
11
+
12
+ begin
13
+ require "rake/testtask"
14
+ require "rubocop/rake_task"
15
+
16
+ RuboCop::RakeTask.new(:rubocop) do |t|
17
+ t.options = ["--display-cop-names"]
18
+ end
19
+ rescue LoadError
20
+ # no rspec available
21
+ end
22
+
23
+ begin
24
+ require "rspec/core/rake_task"
25
+
26
+ RSpec::Core::RakeTask.new(:spec)
27
+ rescue LoadError
28
+ # no rspec available
29
+ end
30
+
31
+ task default: %i[rubocop spec]
@@ -0,0 +1,5 @@
1
+ api:
2
+ base_url: https://integra-o-zaig.dev.qflash.com.br
3
+ endpoints:
4
+ inquiry:
5
+ credit: zaig/consulta_de_credito
@@ -0,0 +1,5 @@
1
+ api:
2
+ base_url: https://integra-o-zaig.prod.qflash.com.br/
3
+ endpoints:
4
+ inquiry:
5
+ credit: zaig/consulta_de_credito
@@ -0,0 +1,6 @@
1
+ en:
2
+ name: Zaig
3
+ zaig:
4
+ errors:
5
+ field_not_found: Field not found in the server response '{field_name}'
6
+ unexpected_error: Integration returned an unexpected status code
@@ -0,0 +1,6 @@
1
+ :'pt-BR':
2
+ name: Zaig
3
+ zaig:
4
+ errors:
5
+ field_not_found: Campo não encontrado na resposta do servidor '{field_name}'
6
+ unexpected_error: Integração retornou um estado inesperado
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ class AlreadyExistsError < BaseError
5
+ end
6
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ # Default library error
5
+ class BaseError < StandardError
6
+ def initialize(message = self.class.default_message)
7
+ super
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ # Class to instance a authenticated connection object.
5
+ class Connection < Flash::Integration::Connection
6
+ def initialize(request_class: Faraday, base_url: Zaig.configuration.base_url, access_token: Zaig.configuration.access_token)
7
+ @access_token = access_token
8
+
9
+ super(request_class: request_class, base_url: base_url)
10
+ end
11
+
12
+ def default_headers
13
+ {
14
+ "Content-Type": "application/json",
15
+ Accept: "application/json",
16
+ "x-api-key": @access_token
17
+ }
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Address
4
+ attr_accessor :city, :complement, :country, :neighborhood, :number, :postal_code,
5
+ :street, :uf
6
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Company
4
+ attr_accessor :address, :client_category, :constitution_date, :constitution_type,
5
+ :document_number, :email, :financial, :guarantors,
6
+ :id, :legal_name, :monthly_revenue, :phones, :shareholders, :source,
7
+ :scr_parameters, :trading_name, :warrants
8
+
9
+ enum client_category: { cedente: 0, sacado: 1 }
10
+
11
+ enum constitution_type: { llc: 0, corp: 1 }
12
+
13
+ enum credit_type: { clean: 0, credit_card_limit: 1, student_loan: 2 }
14
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Phone
4
+ attr_accessor :area_code, :international_dial_code, :number, :type
5
+
6
+ enum type: { commercial: 0, mobile: 1, residential: 2 }
7
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ module Entities
5
+ # Class to create registration response objects.
6
+ class Response
7
+ attr_reader :analysis_status, :credit_proposal_legal_person_key, :message,
8
+ :raw_data, :reason, :request, :status_code, :zaig_id
9
+
10
+ def initialize(analysis_status: nil, credit_proposal_legal_person_key: nil, message: nil,
11
+ raw_data: nil, reason: nil, request: nil, status_code: nil, zaig_id: nil)
12
+ @analysis_status = analysis_status
13
+ @credit_proposal_legal_person_key = credit_proposal_legal_person_key
14
+ @message = message
15
+ @raw_data = raw_data
16
+ @reason = reason
17
+ @request = request
18
+ @status_code = status_code
19
+ @zaig_id = zaig_id
20
+ end
21
+
22
+ def approved?
23
+ analysis_status == "automatically_approved"
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Shareholder
4
+ attr_accessor :address, :birthdate, :declared_assets, :document_number, :email, :fathername, :gender,
5
+ :mothername, :monthly_income, :name, :nationality, :occupation, :phone
6
+
7
+ enum gender: { male: 0, female: 1, undefined: 2 }
8
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ class ExternalTimeoutError < BaseError
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ class FieldValidationError < BaseError
5
+ end
6
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "singleton"
4
+
5
+ module Zaig
6
+ # Class to request a registration to the remote server.
7
+ class Registration
8
+ attr_reader :connection
9
+
10
+ include Singleton
11
+
12
+ def initialize(connection: Zaig::Connection.new, registration_payload: Zaig::RegistrationPayload.instance)
13
+ @connection = connection
14
+ @registration_payload = registration_payload
15
+ end
16
+
17
+ def call(obj)
18
+ endpoint = Zaig.configuration.defaults.api.endpoints.inquiry.credit.freeze
19
+ payload = @registration_payload.call(obj)
20
+ res = @connection.post(url: endpoint, body: payload.to_json)
21
+
22
+ verify_response(res)
23
+
24
+ # Lets parse the clueless response
25
+ parsed_res = JSON.parse(res.body, symbolize_names: true)
26
+ res_zaig = parsed_res[:resposta_zaig]
27
+
28
+ ::Zaig::Entities::Response.new(
29
+ analysis_status: res_zaig[:analysis_status],
30
+ credit_proposal_legal_person_key: res_zaig[:credit_proposal_legal_person_key],
31
+ message: parsed_res[:msg],
32
+ raw_data: res.body,
33
+ reason: res_zaig[:reason],
34
+ request: res,
35
+ status_code: res.status,
36
+ zaig_id: res_zaig[:id]
37
+ )
38
+ end
39
+
40
+ private
41
+ def verify_response(res)
42
+ return if res.status.between?(200, 299)
43
+
44
+ raise ::Zaig::UnexpectedError, I18n.t("zaig.errors.unexpected_error") if res.status != 500
45
+
46
+ parsed_res = JSON.parse(res.body, symbolize_names: true)
47
+
48
+ raise ::Zaig::ServerError, I18n.t("zaig.errors.field_not_found", field_name: "resposta_zaig") unless parsed_res.key?(:resposta_zaig)
49
+
50
+ zaig_msg = parsed_res[:resposta_zaig][:msg]
51
+ zaig_http_status = parsed_res[:resposta_zaig][:status]
52
+
53
+ raise_error_by_zaig_status(zaig_msg, zaig_http_status)
54
+ end
55
+
56
+ def raise_error_by_zaig_status(msg, status)
57
+ case status
58
+ when 209
59
+ raise ::Zaig::AlreadyExistsError, msg
60
+ when 400
61
+ raise ::Zaig::FieldValidationError, msg
62
+ when 408
63
+ raise ::Zaig::ExternalTimeoutError, msg
64
+ when 422
65
+ raise ::Zaig::UnprocessableEntityError, msg
66
+ else
67
+ raise ::Zaig::UnexpectedError, msg
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,150 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "singleton"
4
+
5
+ module Zaig
6
+ # Service class to build a registration payload request.
7
+ class RegistrationPayload
8
+ include Singleton
9
+
10
+ def call(obj)
11
+ {
12
+ address: build_address(obj["address"]),
13
+ client_category: obj["client_category"],
14
+ constitution_date: obj["constitution_date"],
15
+ constitution_type: obj["constitution_type"],
16
+ credit_request_date: obj["credit_request_date"],
17
+ credit_type: obj["credit_type"] || "clean",
18
+ document_number: CNPJ.new(obj["document_number"]).number,
19
+ email: obj["email"],
20
+ financial: obj.key?("financial") ? build_financial(obj["financial"]) : nil,
21
+ guarantors: obj.key?("guarantors") ? build_shareholders(obj["guarantors"]) : nil,
22
+ id: obj["id"],
23
+ legal_name: obj["legal_name"],
24
+ monthly_revenue: obj["monthly_revenue"].to_f,
25
+ phones: build_phones(obj["phones"]),
26
+ shareholders: build_shareholders(obj["shareholders"]),
27
+ source: build_source(obj["source"]),
28
+ scr_parameters: build_scr_parameters(obj["scr_parameters"]),
29
+ trading_name: obj["trading_name"],
30
+ warrants: build_warrants(obj["warrants"])
31
+ }
32
+ end
33
+
34
+ private
35
+ def build_address(obj_address)
36
+ {
37
+ city: obj_address["city"],
38
+ complement: obj_address["complement"] || "",
39
+ country: obj_address["country"] || "BRA",
40
+ neighborhood: obj_address["neighborhood"],
41
+ number: obj_address["number"],
42
+ postal_code: obj_address["postal_code"],
43
+ street: obj_address["street"],
44
+ uf: obj_address["uf"]
45
+ }
46
+ end
47
+
48
+ def build_phone(obj)
49
+ {
50
+ area_code: obj["area_code"],
51
+ international_dial_code: obj["international_dial_code"],
52
+ number: obj["number"],
53
+ type: obj["type"]
54
+ }
55
+ end
56
+
57
+ def build_phones(obj_phones)
58
+ phones = []
59
+
60
+ obj_phones.each { |p| phones << build_phone(p) }
61
+
62
+ phones
63
+ end
64
+
65
+ def build_shareholders(obj_shareholders)
66
+ shareholders = []
67
+
68
+ obj_shareholders.each do |s|
69
+ shareholders << {
70
+ address: build_address(s["address"]),
71
+ birthdate: Date.parse(s["birthdate"]).to_s,
72
+ declared_assets: s["declared_assets"],
73
+ document_number: CPF.new(s["document_number"]).number,
74
+ email: s["email"],
75
+ father_name: s["father_name"],
76
+ gender: s["gender"],
77
+ monthly_income: s["monthly_income"].to_f,
78
+ mother_name: s["mother_name"],
79
+ name: s["name"],
80
+ nationality: s["nationality"],
81
+ occupation: s["occupation"],
82
+ phones: build_phones(s["phones"])
83
+ }
84
+ end
85
+ shareholders
86
+ end
87
+
88
+ def build_financial(fin)
89
+ {
90
+ amount: fin["amount"],
91
+ annual_interest_rate: fin["annual_interest_rate"],
92
+ cdi_percentage: fin["cdi_percentage"],
93
+ currency: fin["currency"] || "BRL",
94
+ interest_type: fin["interest_type"],
95
+ number_of_installments: fin.key?("number_of_installments") ? fin["number_of_installments"].to_i : 0
96
+ }
97
+ end
98
+
99
+ def build_warrants(obj_warrants)
100
+ warrants = []
101
+
102
+ obj_warrants.each do |w|
103
+ warrants << {
104
+ warrant_type: w["warrant_type"],
105
+ address: build_address(w["address"]),
106
+ property_type: w["property_type"],
107
+ estimated_value: w["estimated_value"],
108
+ forced_selling_value: w["forced_selling_value"]
109
+ }
110
+ end
111
+ warrants
112
+ end
113
+
114
+ def build_source(obj_source)
115
+ {
116
+ channel: obj_source["channel"],
117
+ ip: obj_source["ip"],
118
+ session_id: obj_source["session_id"]
119
+ }
120
+ end
121
+
122
+ def build_scr_parameters(obj_src)
123
+ {
124
+ signers: build_signers(obj_src["signers"]),
125
+ signature_evidence: {
126
+ access_token: obj_src["signature_evidence"]["access_token"],
127
+ additional_data: obj_src["signature_evidence"]["additional_data"],
128
+ ip_address: obj_src["signature_evidence"]["ip_address"],
129
+ session_id: obj_src["signature_evidence"]["session_id"],
130
+ signed_term: {
131
+ raw_text: obj_src["signature_evidence"]["signed_term"]["raw_text"]
132
+ }
133
+ }
134
+ }
135
+ end
136
+
137
+ def build_signers(obj_signers)
138
+ signers = []
139
+ obj_signers.each do |s|
140
+ signers << {
141
+ document_number: CNPJ.new(s["document_number"]).number,
142
+ name: s["name"],
143
+ email: s["email"],
144
+ phone: build_phone(s["phone"])
145
+ }
146
+ end
147
+ signers
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ class ServerError < BaseError
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ class ServerTimeoutError < BaseError
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ class UnexpectedError < BaseError
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ class UnprocessableEntityError < BaseError
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ class ValidationError < BaseError
5
+ end
6
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zaig
4
+ # When updating version, keep in mind Semantic Versioning http://semver.org/
5
+ # TL;DR; (Major.Minor.Patch)
6
+ # Releases before 1.0.0 are in active development and can change anytime
7
+ # 1.0.0 and up is indication and declaration of a stable public API
8
+ # Major - Incremented for incompatible changes with previous release (or big enough new features)
9
+ # Minor - Incremented for new backwards-compatible features + deprecations
10
+ # Patch - Incremented for backwards-compatible bug fixes
11
+ VERSION = "1.0.0"
12
+ end
data/lib/zaig.rb ADDED
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "confset"
4
+ require "cpf_cnpj"
5
+ require "flash_integration"
6
+ require "i18n"
7
+
8
+ require "zaig/base_error"
9
+ require "zaig/already_exists_error"
10
+ require "zaig/external_timeout_error"
11
+ require "zaig/field_validation_error"
12
+ require "zaig/server_error"
13
+ require "zaig/server_timeout_error"
14
+ require "zaig/unexpected_error"
15
+ require "zaig/unprocessable_entity_error"
16
+ require "zaig/validation_error"
17
+
18
+ require "zaig/entities/response"
19
+
20
+ require "zaig/registration_payload"
21
+ require "zaig/connection"
22
+ require "zaig/registration"
23
+ require "zaig/version"
24
+
25
+ I18n.load_path += Dir[File.join(__dir__, "locales", "**/*.yml")]
26
+ I18n.reload! if I18n.backend.initialized?
27
+
28
+ # Zaig integration module
29
+ module Zaig
30
+ # rubocop:disable ThreadSafety/ClassAndModuleAttributes
31
+ # rubocop:disable ThreadSafety/InstanceVariableInClassMethod
32
+ class << self
33
+ attr_writer :configuration
34
+
35
+ def configuration
36
+ @configuration ||= Configuration.new
37
+ end
38
+ end
39
+
40
+ def self.configure
41
+ self.configuration ||= Configuration.new
42
+
43
+ yield(configuration)
44
+ end
45
+
46
+ # rubocop:enable ThreadSafety/ClassAndModuleAttributes
47
+ # rubocop:enable ThreadSafety/InstanceVariableInClassMethod
48
+
49
+ # Basic configuration settings
50
+ class Configuration
51
+ attr_accessor :access_token, :base_url, :env
52
+ attr_reader :defaults
53
+
54
+ def initialize
55
+ @env = "development"
56
+
57
+ load_defaults
58
+ end
59
+
60
+ def load_defaults
61
+ @defaults = Confset.load_files("lib/config/settings/#{@env}.yml")
62
+ @base_url = @defaults.api.base_url
63
+ end
64
+ end
65
+ end
metadata ADDED
@@ -0,0 +1,344 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zaig
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Danilo Carolino
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-07-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: confset
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: cpf_cnpj
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: flash_integration
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'
55
+ - !ruby/object:Gem::Dependency
56
+ name: singleton
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.3'
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 2.3.0
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '2.3'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 2.3.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: factory_bot
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '6.2'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '6.2'
103
+ - !ruby/object:Gem::Dependency
104
+ name: pry
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 0.14.1
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 0.14.1
117
+ - !ruby/object:Gem::Dependency
118
+ name: rake
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: 13.0.6
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 10.0.0
127
+ type: :development
128
+ prerelease: false
129
+ version_requirements: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: 13.0.6
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: 10.0.0
137
+ - !ruby/object:Gem::Dependency
138
+ name: rspec
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: 3.11.0
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: 3.11.0
151
+ - !ruby/object:Gem::Dependency
152
+ name: rubocop
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: 1.31.1
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: 1.31.1
165
+ - !ruby/object:Gem::Dependency
166
+ name: rubocop-faker
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ - !ruby/object:Gem::Dependency
180
+ name: rubocop-i18n
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ - !ruby/object:Gem::Dependency
194
+ name: rubocop-packaging
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ - !ruby/object:Gem::Dependency
208
+ name: rubocop-performance
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ - !ruby/object:Gem::Dependency
222
+ name: rubocop-rspec
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ type: :development
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ - !ruby/object:Gem::Dependency
236
+ name: rubocop-thread_safety
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ type: :development
243
+ prerelease: false
244
+ version_requirements: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ - !ruby/object:Gem::Dependency
250
+ name: simplecov
251
+ requirement: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - "~>"
254
+ - !ruby/object:Gem::Version
255
+ version: 0.21.2
256
+ type: :development
257
+ prerelease: false
258
+ version_requirements: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - "~>"
261
+ - !ruby/object:Gem::Version
262
+ version: 0.21.2
263
+ - !ruby/object:Gem::Dependency
264
+ name: simplecov-json
265
+ requirement: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: 0.2.3
270
+ type: :development
271
+ prerelease: false
272
+ version_requirements: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - "~>"
275
+ - !ruby/object:Gem::Version
276
+ version: 0.2.3
277
+ - !ruby/object:Gem::Dependency
278
+ name: webmock
279
+ requirement: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - "~>"
282
+ - !ruby/object:Gem::Version
283
+ version: 3.14.0
284
+ type: :development
285
+ prerelease: false
286
+ version_requirements: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - "~>"
289
+ - !ruby/object:Gem::Version
290
+ version: 3.14.0
291
+ description: SDK to consume the Zaig services
292
+ email: danilo.carolino@qflash.com.br
293
+ executables: []
294
+ extensions: []
295
+ extra_rdoc_files: []
296
+ files:
297
+ - Rakefile
298
+ - lib/config/settings/development.yml
299
+ - lib/config/settings/production.yml
300
+ - lib/locales/en.yml
301
+ - lib/locales/pt-BR.yml
302
+ - lib/zaig.rb
303
+ - lib/zaig/already_exists_error.rb
304
+ - lib/zaig/base_error.rb
305
+ - lib/zaig/connection.rb
306
+ - lib/zaig/entities/address.rb
307
+ - lib/zaig/entities/company.rb
308
+ - lib/zaig/entities/phone.rb
309
+ - lib/zaig/entities/response.rb
310
+ - lib/zaig/entities/shareholder.rb
311
+ - lib/zaig/external_timeout_error.rb
312
+ - lib/zaig/field_validation_error.rb
313
+ - lib/zaig/registration.rb
314
+ - lib/zaig/registration_payload.rb
315
+ - lib/zaig/server_error.rb
316
+ - lib/zaig/server_timeout_error.rb
317
+ - lib/zaig/unexpected_error.rb
318
+ - lib/zaig/unprocessable_entity_error.rb
319
+ - lib/zaig/validation_error.rb
320
+ - lib/zaig/version.rb
321
+ homepage:
322
+ licenses: []
323
+ metadata:
324
+ rubygems_mfa_required: 'true'
325
+ post_install_message:
326
+ rdoc_options: []
327
+ require_paths:
328
+ - lib
329
+ required_ruby_version: !ruby/object:Gem::Requirement
330
+ requirements:
331
+ - - ">="
332
+ - !ruby/object:Gem::Version
333
+ version: '2.7'
334
+ required_rubygems_version: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - ">="
337
+ - !ruby/object:Gem::Version
338
+ version: '0'
339
+ requirements: []
340
+ rubygems_version: 3.1.6
341
+ signing_key:
342
+ specification_version: 4
343
+ summary: Zaig SDK
344
+ test_files: []