class Shipcloud::Request::Base

Attributes

info[R]

Public Class Methods

new(info) click to toggle source
# File lib/shipcloud/request/base.rb, line 8
def initialize(info)
  @info = info
end

Public Instance Methods

perform() click to toggle source
# File lib/shipcloud/request/base.rb, line 12
def perform
  raise AuthenticationError unless @info.api_key

  connection.setup_https
  response = connection.request
  validate_response(response)
  JSON.parse(response.body) unless response.body.nil?
rescue JSON::ParserError
  raise ShipcloudError.new(response)
end

Protected Instance Methods

connection() click to toggle source

rubocop:disable Naming/MemoizedInstanceVariableName

# File lib/shipcloud/request/base.rb, line 33
def connection
  @connection ||= Connection.new(info)
end
validate_response(response) click to toggle source
# File lib/shipcloud/request/base.rb, line 25
def validate_response(response)
  error = ShipcloudError.from_response(response)
  if error
    raise error
  end
end