Sha256: e9079c80e0f468f45838f9c55d863d907fc5ef36cfe9d31f5a1fb416aeed7b41

Contents?: true

Size: 955 Bytes

Versions: 3

Compression:

Stored size: 955 Bytes

Contents

module CorreiosSigep
  module LogisticReverse
    class BaseClient
      def initialize
        @client = Savon.client(wsdl: wsdl)
      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

3 entries across 3 versions & 1 rubygems

Version Path
correios_sigep-0.0.5 lib/correios_sigep/logistic_reverse/base_client.rb
correios_sigep-0.0.4 lib/correios_sigep/logistic_reverse/base_client.rb
correios_sigep-0.0.3 lib/correios_sigep/logistic_reverse/base_client.rb