Class: QBWC::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/qbwc/request.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ Request

Returns a new instance of Request.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/qbwc/request.rb', line 5

def initialize(request)
  #Handle Cases for a request passed in as a Hash or String
  #If it's a hash verify that it is properly wrapped with qbxml_msg_rq and xml_attributes for on_error events
  #Allow strings of QBXML to be passed in directly. 
  case
  when request.is_a?(Hash)
    request = self.class.wrap_request(request)
    @request = QBWC.parser.to_qbxml(request, {:validate => true})
  when request.is_a?(String)
    @request = request
  else
    raise "Request '#{request}' must be a Hash or a String."
  end
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



3
4
5
# File 'lib/qbwc/request.rb', line 3

def request
  @request
end

#response_procObject (readonly)

Returns the value of attribute response_proc.



3
4
5
# File 'lib/qbwc/request.rb', line 3

def response_proc
  @response_proc
end

Class Method Details

.wrap_request(request) ⇒ Object

Wrap a Hash request with qbxml_msgs_rq, if it’s not already.



30
31
32
33
34
35
# File 'lib/qbwc/request.rb', line 30

def self.wrap_request(request)
  return request if request.keys.include?(:qbxml_msgs_rq)
  wrapped_request = { :qbxml_msgs_rq => {:xml_attributes => {"onError"=> QBWC::on_error } } }
  wrapped_request[:qbxml_msgs_rq] = wrapped_request[:qbxml_msgs_rq].merge(request)
  return wrapped_request
end

Instance Method Details

#to_hashObject



24
25
26
27
# File 'lib/qbwc/request.rb', line 24

def to_hash
  hash = QBWC.parser.from_qbxml(@request.to_s)["qbxml"]["qbxml_msgs_rq"]
  hash.except('xml_attributes')
end

#to_qbxmlObject



20
21
22
# File 'lib/qbwc/request.rb', line 20

def to_qbxml
  QBWC.parser.to_qbxml(request)
end