Sha256: d903dc2e4e56fc7db31fc2079dd0ecb075c688a1aa42292e790c41752e2f5dad

Contents?: true

Size: 1.06 KB

Versions: 8

Compression:

Stored size: 1.06 KB

Contents

module CorreiosSigep
  module LogisticReverse
    class BaseClient
      def initialize
        options = { wsdl: wsdl, proxy: CorreiosSigep.configuration.proxy }
        options.delete(:proxy) unless options[:proxy]

        @client = Savon.client(options)
      end

      def wsdl
        @wsdl ||= if ENV['GEM_ENV'] == 'test'
                    'http://webservicescolhomologacao.correios.com.br/ScolWeb/WebServiceScol?wsdl'
                  else
                    'http://webservicescol.correios.com.br/ScolWeb/WebServiceScol?wsdl'
                  end
      end

      def invoke(method, message)
        @client.instance_variable_set(
          :@wsdl,
          Wasabi::Document.new(CorreiosSigep.configuration.wsdl_base_url)
        ) if wsdl_base_url_changed?

        @client.call(method, message: message)
      end

      private
      def wsdl_base_url_changed?
        wsdl_base_url && wsdl_base_url != @client.instance_variable_get(:@wsdl).document
      end

      def wsdl_base_url
        CorreiosSigep.configuration.wsdl_base_url
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
correios_sigep-0.2.5 lib/correios_sigep/logistic_reverse/base_client.rb
correios_sigep-0.2.4 lib/correios_sigep/logistic_reverse/base_client.rb
correios_sigep-0.2.3 lib/correios_sigep/logistic_reverse/base_client.rb
correios_sigep-0.2.2 lib/correios_sigep/logistic_reverse/base_client.rb
correios_sigep-0.2.1 lib/correios_sigep/logistic_reverse/base_client.rb
correios_sigep-0.2.0 lib/correios_sigep/logistic_reverse/base_client.rb
correios_sigep-0.1.1 lib/correios_sigep/logistic_reverse/base_client.rb
correios_sigep-0.1.0 lib/correios_sigep/logistic_reverse/base_client.rb