class Correios::ReverseLogistics::RequestTicketNumbers
Public Class Methods
new(data = {})
click to toggle source
Calls superclass method
# File lib/reverse_logistics/requests/request_ticket_numbers.rb, line 4 def initialize(data = {}) @credentials = Correios.credentials @show_request = data[:show_request] @ticket_type = data[:ticket_type] @service = data[:service] @amount = data[:amount] super() end
Public Instance Methods
request()
click to toggle source
# File lib/reverse_logistics/requests/request_ticket_numbers.rb, line 14 def request puts xml if @show_request == true begin format_response(ReverseLogistics.client.call( :solicitar_range, 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_response(response)
click to toggle source
# File lib/reverse_logistics/requests/request_ticket_numbers.rb, line 51 def format_response(response) response = response[:solicitar_range_response][:solicitar_range] generate_revese_logistics_exception(response) initial_number = response[:faixa_inicial].to_i final_number = response[:faixa_final].to_i ticket_numbers = [] while initial_number <= final_number do ticket_numbers << initial_number.to_s initial_number += 1 end { ticket_numbers: ticket_numbers } end
xml()
click to toggle source
# File lib/reverse_logistics/requests/request_ticket_numbers.rb, line 31 def xml Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml| xml['soap'].Envelope(ReverseLogistics.namespaces) do xml['soap'].Body do xml['ns1'].solicitarRange do parent_namespace = xml.parent.namespace xml.parent.namespace = nil xml.codAdministrativo @credentials.administrative_code xml.tipo ticket_type(@ticket_type) xml.servico reverse_shipping_service(@service) xml.quantidade @amount xml.parent.namespace = parent_namespace end end end end.doc.root.to_xml end