class Neoway::Request

Public Class Methods

check_api_keys() click to toggle source

Check if the user_name and password are set in the application

# 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) click to toggle source
# 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) click to toggle source
# 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_token() click to toggle source

Get new token from neoway to use in the requests

# 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?() click to toggle source

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

# 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