class Correios::Sigep::SearchAvailableAdditionalServices

Public Class Methods

new(data = {}) click to toggle source
Calls superclass method
# File lib/sigep/requests/search_available_additional_services.rb, line 4
def initialize(data = {})
  @show_request = data[:show_request]
  super()
end

Public Instance Methods

request() click to toggle source
# File lib/sigep/requests/search_available_additional_services.rb, line 9
def request
  puts xml if @show_request == true
  begin
    format_response(Sigep.client.call(
      :busca_servicos_adicionais_ativos,
      soap_action: '',
      xml: xml
    ).to_hash)
  rescue Savon::SOAPFault => error
    generate_soap_fault_exception(error)
  rescue Savon::HTTPError => error
    generate_http_exception(error.http.code)
  end
end

Private Instance Methods

format_additional_services(additional_services) click to toggle source
# File lib/sigep/requests/search_available_additional_services.rb, line 43
def format_additional_services(additional_services)
  additional_services.map do |additional_service|
    {
      code: additional_service[:codigo],
      description: additional_service[:descricao].encode(Encoding::UTF_8),
      initials: additional_service[:sigla]
    }
  end
end
format_response(response) click to toggle source
# File lib/sigep/requests/search_available_additional_services.rb, line 36
def format_response(response)
  response = response[:busca_servicos_adicionais_ativos_response][:return]
  response = [response] if response.is_a?(Hash)

  { additional_services: format_additional_services(response) }
end
xml() click to toggle source
# File lib/sigep/requests/search_available_additional_services.rb, line 26
def xml
  Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
    xml['soap'].Envelope(Sigep.namespaces) do
      xml['soap'].Body do
        xml['ns1'].buscaServicosAdicionaisAtivos
      end
    end
  end.doc.root.to_xml
end