class Biro::CredDefense::Response
Public Class Methods
new(response)
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 6 def initialize(response) @body = response.body end
Public Instance Methods
addresses()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 69 def addresses data.fetch('dmlistaenderecos', nil).map do |a| parts = a['nologradouro'].split('-') street = parts[0]&.split[0..-2].join(' ') number = parts[0]&.split&.pop city_parts = a['cdibgemunicipio']&.split('/') city = city_parts && city_parts[0] state = city_parts && city_parts[1] { street: street, number: number, complement: parts[1]&.strip, city: city, state: state, zipcode: a['nrcep'] } end end
birthdate()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 14 def birthdate text('dtnascimento') end
cpf()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 10 def cpf text('nrcpf').gsub(/\D/, '') end
emails()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 34 def emails email = text('noemail') Array.wrap(email) end
equities()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 47 def equities data.dig('dmlistaparticipacaosocietaria')&.map do |e| cpf = e.dig('nrdocumentosocio')&.gsub(/\D/, '') cnpj = e.dig('nrcnpj')&.gsub(/\D/, '') name = e.dig('nosocio')&.strip company = e.dig('norazaosocial')&.strip shares = e.dig('qtpercentualcapitalsocial') position = e.dig('noqualificacaosocio')&.strip since = e.dig('dtentradasociedade')&.strip { cpf: cpf, cnpj: cnpj, name: name, company: company, shares: shares, position: position, since: since, } end end
error()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 110 def error if json['result'] == 'error' json['messages']&.first end end
income()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 26 def income text('nrrenda') end
mothers_name()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 18 def mothers_name text('nomae') end
name()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 22 def name text('nopessoa') end
phones()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 90 def phones data.fetch('dmlistatelefones', nil).map do |p| parts = p['nrtelefone']&.split(' ') ddd = parts&.fetch(0, nil)&.gsub(/\D/, '') number = parts&.fetch(1) kind = (number.to_s[0] == '9' ? :mobile : :landline) if number { ddd: ddd, number: number, kind: kind } end end
profession()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 30 def profession text('nrcbo') end
receita_federal()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 39 def receita_federal rf = data.dig('dmcomprovantereceita')&.first return nil unless rf { name: rf.dig('nopessoa'), status: rf.dig('nosituacao'), date: rf.dig('dhprocessamento'), death: text('boobito') } end
success?()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 106 def success? error.blank? end
Private Instance Methods
data()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 122 def data json.dig('advancedsearch') end
json()
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 126 def json JSON.parse(@body) end
text(field)
click to toggle source
# File lib/biro/gateways/cred_defense/response.rb, line 118 def text(field) data.dig('dmlistapessoafisica', field).strip end