Sha256: 4eb136e2722271201f0ff799e1bf5934cfe67606ed2065efb632025f70006c0f

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 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)
      if (Rails.env.development? && ReceitawsClient.mock_development) || (Rails.env.test? && ReceitawsClient.mock_test)
        return ReceitawsClient::Mock::ConsultarCnpj.executar cnpj
      end

      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.9 lib/receitaws_client/consultar_cnpj.rb