Sha256: bc265394ea836de4e8427532feaab9c7f84cd735e75f4121892183ca71d0da5b

Contents?: true

Size: 1.28 KB

Versions: 1

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module ReceitawsClient
  class ConsultarCnpj < Base
    # Metodo para consultar um CNPJ
    # cnpj: obrigatório, numérico, o CNPJ a ser pesquisado
    # Retonar um obejto do tipo Receitaws::Cnpj
    def self.executar(cnpj)
      Rails.logger.tagged 'ReceitawsClient' do
        cnpj = cnpj.to_s.gsub(/[^0-9A-Za-z]/, '')
        unless ReceitawsClient::Cnpj.valida_digito_cnpj(cnpj)
          Rails.logger.info 'CNPJ INVALIDO'
          result = { 'status' => 'ERROR', 'message' => 'CNPJ INVALIDO' }
          return ReceitawsClient::Cnpj.new(result)
        end
        response = build_request endpoint(cnpj), 'get'
        begin
          result = JSON.parse(response.read_body) unless response.nil?
          Rails.logger.info 'Busca de CNPJ OK'
          return ReceitawsClient::Cnpj.new(result)
        rescue StandardError
          Rails.logger.info 'ERROR - Serviço ReceitaWS não retornou a solicitação!'
          result = { 'status' => 'error', 'message' => 'ERROR - Serviço ReceitaWS não retornou a solicitação!' }
          return ReceitawsClient::Cnpj.new(result)
        end
      end
    end

    def self.endpoint(cnpj)
      return "cnpj/#{cnpj}" if ReceitawsClient.plano == 'gratis'
      "cnpj/#{cnpj}/days/#{ReceitawsClient.days}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
receitaws_client-0.0.8 lib/receitaws_client/consultar_cnpj.rb