class Correios::SRO::RequestBuilder

Constants

LANGUAGE
NAMESPACES
QUERY_TYPES
RESULT_MODES

Public Class Methods

new(tracker) click to toggle source
# File lib/correios/sro/request_builder.rb, line 16
def initialize(tracker)
  @tracker = tracker
end

Public Instance Methods

build_xml() click to toggle source
# File lib/correios/sro/request_builder.rb, line 20
def build_xml
  Nokogiri::XML::Builder.new do |builder|
    builder[:soapenv].Envelope(NAMESPACES) {
      builder[:soapenv].Header  { }
      builder[:soapenv].Body  {
        builder[:res].buscaEventosLista() {
          builder.usuario(@tracker.user) {
            builder.parent.namespace = nil
          }
          builder.senha(@tracker.password) {
            builder.parent.namespace = nil
          }
          builder.tipo(QUERY_TYPES[@tracker.query_type]) {
            builder.parent.namespace = nil
          }
          builder.resultado(RESULT_MODES[@tracker.result_mode]) {
            builder.parent.namespace = nil
          }
          builder.lingua(LANGUAGE[@tracker.language]) {
            builder.parent.namespace = nil
          }
          @tracker.object_numbers.each do |object_number|
            builder.objetos(object_number) {
              builder.parent.namespace = nil
            }
          end
        }
      }
    }
  end.to_xml
end