Class: Correios::SRO::RequestBuilder
- Inherits:
-
Object
- Object
- Correios::SRO::RequestBuilder
- Defined in:
- lib/correios/sro/request_builder.rb
Constant Summary collapse
- QUERY_TYPES =
{ list: "L", range: "F" }.freeze
- RESULT_MODES =
{ all: "T", last: "U" }.freeze
- LANGUAGE =
{ pt: "101", en: "102" }.freeze
- NAMESPACES =
{ "xmlns:soapenv" => "http://schemas.xmlsoap.org/soap/envelope/", "xmlns:res" => "http://resource.webservice.correios.com.br/" }.freeze
Instance Method Summary collapse
- #build_xml ⇒ Object
-
#initialize(tracker) ⇒ RequestBuilder
constructor
A new instance of RequestBuilder.
Constructor Details
permalink #initialize(tracker) ⇒ RequestBuilder
Returns a new instance of RequestBuilder.
16 17 18 |
# File 'lib/correios/sro/request_builder.rb', line 16 def initialize(tracker) @tracker = tracker end |
Instance Method Details
permalink #build_xml ⇒ Object
[View source]
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# 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 |