Class: Neoway::Request

Inherits:
Object
  • Object
show all
Extended by:
Neoway
Defined in:
lib/neoway/request.rb

Constant Summary

Constants included from Neoway

VERSION

Class Method Summary collapse

Methods included from Neoway

base_url

Class Method Details

.check_api_keysObject

Check if the user_name and password are set in the application

Raises:



11
12
13
14
# File 'lib/neoway/request.rb', line 11

def self.check_api_keys
  raise NoApiKey if Neoway.user_name.nil? || Neoway.user_name.empty? ||
                    Neoway.password.nil? || Neoway.password.empty?
end

.consulta_pessoa_fisica(doc) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/neoway/request.rb', line 51

def self.consulta_pessoa_fisica(doc)
  get_token unless valid_token?
  retries = 0

  cpf = doc.gsub(/[^0-9]/,"")

  raise CpfWrongLength if cpf.length != 11

  response = RestClient.get(
            "#{base_url}/v1/data/pessoas/#{cpf}?fields=nome,cpf,situacaoCpf,cpfDataInscricao,idade,dataNascimento,falecido,falecidoConfirmado,sexo,nomeMae,nis,pis,endereco.logradouro,endereco.numero,endereco.complemento,endereco.bairro,endereco.municipio,endereco.uf,endereco.cep,enderecoEmpregoRaisNovo.telefone,telefones.endereco.logradouro,telefones.endereco.numero,telefones.endereco.complemento,telefones.endereco.bairro,telefones.endereco.municipio,telefones.endereco.uf,telefones.endereco.cep,rendaPresumida,estabilidadeRenda,servidorPublico,profissaoNeoway,debitosPgfnDau.inscricao,participacaoSocietariaRF.cnpj,participacaoSocietariaRF.razaoSocial,participacaoSocietariaRF.descricaoCnae,participacaoSocietariaRF.ramoAtividade,participacaoSocietariaRF.dataAbertura,participacaoSocietariaRF.qualificacao,participacaoSocietariaRF.valorParticipacao,participacaoSocietariaRF.capitalSocialEmpresa,participacaoSocietariaRF.participacaoCapitalSocial,participacaoSocietariaRF.faixaFaturamentoPresumido,participacaoSocietariaRF.faixaFaturamentoPresumidoGrupo,participacaoSocietaria.cnpj,participacaoSocietaria.razaoSocial,participacaoSocietaria.descricaoCnae,participacaoSocietaria.ramoAtividade,participacaoSocietaria.dataAbertura,participacaoSocietaria.qualificacao,participacaoSocietaria.valorParticipacao,participacaoSocietaria.capitalSocialEmpresa,participacaoSocietaria.faixaFaturamentoPresumido,participacaoSocietaria.faixaFaturamentoPresumidoGrupo,participacaoSocietariaUnico.cnpj,participacaoSocietariaUnico.razaoSocial,participacaoSocietariaUnico.descricaoCnae,participacaoSocietariaUnico.ramoAtividade,participacaoSocietariaUnico.dataAbertura,participacaoSocietariaUnico.qualificacao,participacaoSocietariaUnico.valorParticipacao,participacaoSocietariaUnico.capitalSocialEmpresa,participacaoSocietariaUnico.faixaFaturamentoPresumido,participacaoSocietariaUnico.faixaFaturamentoPresumidoGrupo",
            {Authorization: "Bearer #{@@token}"}
          )

  body = JSON.parse(response.body)

  body

rescue RestClient::Unauthorized => e
  retries += 1
  retry if retries <= 5
rescue RestClient::NotFound => e
  raise CpfError
end

.consulta_pessoa_juridica(doc) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/neoway/request.rb', line 75

def self.consulta_pessoa_juridica(doc)
  get_token unless valid_token?
  retries = 0

  cnpj = doc.gsub(/[^0-9]/,"")

  raise CnpjWrongLength if cnpj.length != 14

  response = RestClient.get(
            "#{base_url}/v1/data/empresas/#{cnpj}?fields=cnpj,razaoSocial,fantasia,natureza.id,natureza.descricao,situacao.descricao,situacao.data,cnaePrincipal.setor,cnaePrincipal.ramoAtividade,telefones.numero,endereco.logradouro,endereco.numero,endereco.complemento,endereco.bairro,endereco.municipio,endereco.uf,endereco.cep,endereco.precisao,info.numeroTelefoneRF[0],info.numeroTelefoneRF[1],cnds.orgaoEmissor,cnds.descricaoSituacao,cnds.dataEmissao,cnds.numeroCertificacao,cnds.dataValidade,debitosPgfnDau.inscricao,debitosPgfnDau.natureza,debitosPgfnDau.valorTotal,socios.participacaoSocietaria,socios.nome,socios.qualificacao,socios.documento,socios.nivelPep,sociosJunta.participacaoSocietaria,sociosJunta.nome,sociosJunta.qualificacao,sociosJunta.documento,sociosJunta.nivelPep,filiais.cnpj,filiais.razaoSocial,filiais.situacao,filiais.dataAbertura,filiais.municipio,filiais.uf,matriz.cnpj,matriz.razaoSocial,matriz.situacao,matriz.dataAbertura,matriz.municipio,matriz.uf",
            {Authorization: "Bearer #{@@token}"}
          )

  body = JSON.parse(response.body)

  body

rescue RestClient::Unauthorized => e
  retries += 1
  retry if retries <= 5
rescue RestClient::NotFound => e
  raise CnpjError
end

.get_tokenObject

Get new token from neoway to use in the requests



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/neoway/request.rb', line 18

def self.get_token
  check_api_keys

  response = RestClient.post(
              "#{base_url}/auth/token",
              {
                application: Neoway.user_name,
                application_secret: Neoway.password
              }.to_json
            )

  body = JSON.parse(response.body)

  @@last_token_exp = Time.now
  @@token = body["token"]
end

.valid_token?Boolean

Check if the token is valid, sending it to the API server.

Returns:

  • (Boolean)


38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/neoway/request.rb', line 38

def self.valid_token?
  check_api_keys

  return false if @@token.nil?

  response = RestClient.get(
              "#{base_url}/auth/token/check",
              {Authorization: "Bearer #{@@token}"}
            )

  response.code == 200
end