Class: Apidiesel::Request

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

Overview

Wrapper for API requests

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(action:, action_arguments:, parameters:, metadata: {}) ⇒ Request

Returns a new instance of Request.

Parameters:

  • action (Apidiesel::Action)
  • action_arguments (Hash)
  • parameters (Hash)
  • metadata (Hash) (defaults to: {})


11
12
13
14
15
16
# File 'lib/apidiesel/request.rb', line 11

def initialize(action:, action_arguments:, parameters:, metadata: {})
  @action           = action
  @action_arguments = action_arguments
  @parameters       = parameters
  @metadata         = 
end

Instance Attribute Details

#actionObject

Returns the value of attribute action.



5
6
7
# File 'lib/apidiesel/request.rb', line 5

def action
  @action
end

#action_argumentsObject

Returns the value of attribute action_arguments.



5
6
7
# File 'lib/apidiesel/request.rb', line 5

def action_arguments
  @action_arguments
end

#http_requestObject

Returns the value of attribute http_request.



5
6
7
# File 'lib/apidiesel/request.rb', line 5

def http_request
  @http_request
end

#http_responseObject

Returns the value of attribute http_response.



5
6
7
# File 'lib/apidiesel/request.rb', line 5

def http_response
  @http_response
end

#metadataObject

Returns the value of attribute metadata.



5
6
7
# File 'lib/apidiesel/request.rb', line 5

def 
  @metadata
end

#parametersObject

Returns the value of attribute parameters.



5
6
7
# File 'lib/apidiesel/request.rb', line 5

def parameters
  @parameters
end

#response_bodyObject

Returns the value of attribute response_body.



5
6
7
# File 'lib/apidiesel/request.rb', line 5

def response_body
  @response_body
end

#resultObject

Returns the value of attribute result.



5
6
7
# File 'lib/apidiesel/request.rb', line 5

def result
  @result
end

#urlObject

Returns the value of attribute url.



5
6
7
# File 'lib/apidiesel/request.rb', line 5

def url
  @url
end

Instance Method Details

#process_responseObject



22
23
24
25
26
27
28
29
30
31
# File 'lib/apidiesel/request.rb', line 22

def process_response
  # Reraise ResponseErrors to include ourselves. Not
  # pretty, but I can't think of anything nicer right now
  begin
    @result = action.process_response(response_body)
  rescue ResponseError => e
    e.request = self
    raise e
  end
end

#to_sObject



33
34
35
36
37
38
39
40
41
# File 'lib/apidiesel/request.rb', line 33

def to_s
  [
    "Apidiesel::Request",
    action.http_method.to_s.upcase,
    url.try(:to_s),
    action.endpoint,
    parameters.collect { |key, value| "#{key}: #{value}"}.join(',')
  ].join(' ')
end