class CorreiosSigep::LogisticReverse::BaseClient

Constants

DEFAULT_TIMEOUT

Public Class Methods

new() click to toggle source
# File lib/correios_sigep/logistic_reverse/base_client.rb, line 6
def initialize
  timeout     = CorreiosSigep.configuration.timeout || DEFAULT_TIMEOUT
  user        = CorreiosSigep.configuration.user
  password    = CorreiosSigep.configuration.password

  options = {
    adapter: :net_http_persistent,
    proxy: CorreiosSigep.configuration.proxy,
    wsdl: wsdl,
    open_timeout: timeout,
    read_timeout: timeout,
    basic_auth: [user, password],
    headers: { 'SOAPAction' => '' }
  }
  options.delete(:proxy) unless options[:proxy]

  @client = Savon.client(options)
end

Public Instance Methods

invoke(method, message) click to toggle source
# File lib/correios_sigep/logistic_reverse/base_client.rb, line 33
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
wsdl() click to toggle source
# File lib/correios_sigep/logistic_reverse/base_client.rb, line 25
def wsdl
  @wsdl ||= if ENV['GEM_ENV'] == 'test' || CorreiosSigep.configuration.development?
              'https://apphom.correios.com.br/logisticaReversaWS/logisticaReversaService/logisticaReversaWS?wsdl'
            else
              'https://cws.correios.com.br/logisticaReversaWS/logisticaReversaService/logisticaReversaWS?wsdl'
            end
end

Private Instance Methods

wsdl_base_url() click to toggle source
# File lib/correios_sigep/logistic_reverse/base_client.rb, line 47
def wsdl_base_url
  CorreiosSigep.configuration.wsdl_base_url
end
wsdl_base_url_changed?() click to toggle source
# File lib/correios_sigep/logistic_reverse/base_client.rb, line 43
def wsdl_base_url_changed?
  wsdl_base_url && wsdl_base_url != @client.instance_variable_get(:@wsdl).document
end