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:, parameters:, metadata: {}) ⇒ Request

Returns a new instance of Request.

Parameters:



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

def initialize(action:, parameters:, metadata: {})
  @action     = action
  @parameters = parameters
     = 
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

#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 
  
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

Instance Method Details

#process_responseObject



20
21
22
23
24
25
26
27
28
# File 'lib/apidiesel/request.rb', line 20

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
    raise ResponseError.new(e.message, self)
  end
end

#to_sObject



30
31
32
33
34
35
36
37
38
# File 'lib/apidiesel/request.rb', line 30

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