class AfipWsfe::Client

Public Class Methods

new(authenticate=true) click to toggle source
# File lib/afip_wsfe/client.rb, line 3
def initialize(authenticate=true)
  AfipWsfe.environment ||= :test
  @auth = authenticate ? AfipWsfe.auth_hash : {}
end

Public Instance Methods

call_endpoint(endpoint, savon_method, params={}) click to toggle source
# File lib/afip_wsfe/client.rb, line 8
def call_endpoint(endpoint, savon_method, params={})
  return_key = endpoint == :wsaa ? :"#{savon_method}_return" : :"#{savon_method}_result"
  
  result = Savon.client(
    log: AfipWsfe.log?,
    log_level: AfipWsfe.log_level || :debug,
    wsdl: "#{AfipWsfe::URLS[AfipWsfe.environment][endpoint]}?wsdl",
    convert_request_keys_to: :camelcase
  ).call(savon_method, message: params.merge(@auth))

  response = result.body[:"#{savon_method}_response"][return_key]
  response = Hash.from_xml response if endpoint == :wsaa

  [result.success?, response]
end