Class: A2z::Responses::OperationRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/a2z/responses/operation_request.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeOperationRequest

Returns a new instance of OperationRequest.



6
7
8
9
# File 'lib/a2z/responses/operation_request.rb', line 6

def initialize
  @headers = []
  @arguments = []
end

Instance Attribute Details

#argumentsObject

Returns the value of attribute arguments.



4
5
6
# File 'lib/a2z/responses/operation_request.rb', line 4

def arguments
  @arguments
end

#headersObject

Returns the value of attribute headers.



4
5
6
# File 'lib/a2z/responses/operation_request.rb', line 4

def headers
  @headers
end

#request_idObject

Returns the value of attribute request_id.



4
5
6
# File 'lib/a2z/responses/operation_request.rb', line 4

def request_id
  @request_id
end

#request_processing_timeObject

Returns the value of attribute request_processing_time.



4
5
6
# File 'lib/a2z/responses/operation_request.rb', line 4

def request_processing_time
  @request_processing_time
end

Class Method Details

.from_response(data) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/a2z/responses/operation_request.rb', line 11

def self.from_response(data)
  new.tap do |operation_request|
    operation_request.request_id = data['RequestId']
    operation_request.request_processing_time = data['RequestProcessingTime'].to_f
    
    if data['HTTPHeaders']
      headers = data['HTTPHeaders']['Header']
      headers = [headers] unless headers.kind_of?(Array)
      headers = headers.collect { |h| [ h['Name'], h['Value'] ] }
      operation_request.headers = Hash[headers]
    end
    
    if data['Arguments']
      arguments = data['Arguments']['Argument']
      arguments = [arguments] unless arguments.kind_of?(Array)
      arguments = arguments.collect { |a| [ a['Name'], a['Value'] ] }
      operation_request.arguments = Hash[arguments]
    end
    
    operation_request.freeze
  end
end