class ShadowCabinet::Client::Real::Request::Base
A request is an implementation of an HTTP verb in terms of the Engine Yard Core API. This is the base class for all Requests.
Attributes
connector[R]
data[R]
request_url[R]
Public Class Methods
new(connector:, request_url:, data: nil)
click to toggle source
# File lib/shadow_cabinet/client/real/request/base.rb, line 16 def initialize(connector:, request_url:, data: nil) @connector = connector @request_url = request_url @data = data end
Public Instance Methods
perform()
click to toggle source
# File lib/shadow_cabinet/client/real/request/base.rb, line 22 def perform Result.new( error: Unimplemented.new( "that operation is not implemented" ) ) end
Private Instance Methods
params()
click to toggle source
# File lib/shadow_cabinet/client/real/request/base.rb, line 35 def params @params = request_url.query_values || {} end
path()
click to toggle source
# File lib/shadow_cabinet/client/real/request/base.rb, line 31 def path request_url.path end
process_response(response)
click to toggle source
# File lib/shadow_cabinet/client/real/request/base.rb, line 39 def process_response(response) body = response.body status = response.status.to_i if status < 200 || status > 299 api_errors = begin JSON.parse(body, symbolize_names: true)[:errors] || [] rescue [] end if api_errors.empty? return Result.new( error: TransportError.new( "API returned a #{status} status" ) ) else return Result.new( error: CoreError.new( "Could not process request. The following issues were identified:\n#{api_errors.map(&:to_s).join("\n")}" ) ) end end Result.new(body: body) end