class Padron::Call

Attributes

body[R]
client[R]
data[R]
environment[R]
fault_code[R]
id[R]

Public Class Methods

new(args={}) click to toggle source
# File lib/padron/call.rb, line 6
def initialize(args={})
        @environment = args[:environment] || :test
        @id = args[:id] || raise(NullOrInvalidAttribute.new, "Por favor ingrese el documento.")
end

Public Instance Methods

dummy() click to toggle source
# File lib/padron/call.rb, line 11
def dummy
        set_client
        pp reponse = client.call(:dummy)
end
get_data() click to toggle source
# File lib/padron/call.rb, line 16
 def get_data
        @data = get_personas
        return nil unless fault_code.nil?
        set_data
end
get_personas() click to toggle source
# File lib/padron/call.rb, line 22
def get_personas
        set_client
        set_body
        response = client.call(:get_persona_list, message: body)
        rescue Savon::SOAPFault => error
      if !error.blank?
              @fault_code = error.to_hash[:fault][:faultstring]
      else
              @fault_code = nil
      end
      return response
end

Private Instance Methods

service_url() click to toggle source
# File lib/padron/call.rb, line 61
def service_url
        Padron::URLS[environment][:padron]
end
set_body() click to toggle source
# File lib/padron/call.rb, line 51
def set_body
        ids = Padron::IdPersona.new(id).return_cuits
        body = Padron.auth_hash
        id_personas = []
        ids.map do |cuit|
                id_personas << cuit
        end
        @body = body.merge({"idPersona" => id_personas})
end
set_client() click to toggle source
# File lib/padron/call.rb, line 37
def set_client
        Padron::AuthData.fetch
        @client = Savon.client(
        wsdl:  service_url,
        log_level:  :debug,
        ssl_cert_key_file: Padron.pkey,
        ssl_cert_file: Padron.cert,
        ssl_verify_mode: :none,
        read_timeout: 90,
        open_timeout: 90,
        headers: { "Accept-Encoding" => "gzip, deflate", "Connection" => "Keep-Alive" }
    )
end
set_data() click to toggle source
# File lib/padron/call.rb, line 65
 def set_data
         personas = data.body[:get_persona_list_response][:persona_list_return][:persona]
         personas.map do |persona|
                 unless persona[0] == :error_constancia && persona.try(:[],:apellido).nil?
                        if !persona[1].nil? && persona[0] == :error_constancia
                             {:name                         => set_name(persona[1]),
                              :cuit                  => persona[1][:id_persona]}
                      else
                             {:name                         => set_name(persona[1]),
                              :cuit                  => persona[1][:id_persona],
                              :cp                    => persona[1].try(:[], :domicilio_fiscal).try(:[], :cod_postal),
                              :address               => persona[1].try(:[], :domicilio_fiscal).try(:[], :direccion),
                              :city_id               => persona[1].try(:[], :domicilio_fiscal).try(:[], :id_provincia),
                              :city                  => Padron::PROVINCIAS[persona[1].try(:[],:domicilio_fiscal).try(:[], :id_provincia)],
                              :locality              => persona[1].try(:[], :domicilio_fiscal).try(:[], :localidad)}
                      end
              end
          end
end
set_name(persona) click to toggle source
# File lib/padron/call.rb, line 85
def set_name(persona)
        return "#{persona.try(:[], :nombre)} #{persona.try(:[], :apellido)}"
end