class Hawkei::Request

Hawkei Request

Build request

Attributes

http[R]
params[R]
request[R]

Public Class Methods

delete(params = {}) click to toggle source
# File lib/hawkei/request.rb, line 37
def delete(params = {})
  new(params).delete
end
execute(params = {}) click to toggle source
# File lib/hawkei/request.rb, line 9
def execute(params = {})
  klass = new(params)

  if params[:method] == :post
    klass.post
  elsif params[:method] == :put
    klass.put
  elsif params[:method] == :delete
    klass.delete
  elsif params[:method] == :get
    klass.get
  else
    raise Hawkei::UnknownRequestMethod, "#{params[:method]} haven't been implemented"
  end
end
get(params = {}) click to toggle source
# File lib/hawkei/request.rb, line 33
def get(params = {})
  new(params).get
end
new(params = {}) click to toggle source
# File lib/hawkei/request.rb, line 44
def initialize(params = {})
  @params = params
  @http   = Net::HTTP.new(uri.host, uri.port, uri_proxy.host, uri_proxy.port)

  setup_ssl if params[:use_ssl]
end
post(params = {}) click to toggle source
# File lib/hawkei/request.rb, line 25
def post(params = {})
  new(params).post
end
put(params = {}) click to toggle source
# File lib/hawkei/request.rb, line 29
def put(params = {})
  new(params).put
end

Public Instance Methods

delete() click to toggle source
# File lib/hawkei/request.rb, line 77
def delete
  @request = Net::HTTP::Delete.new(uri.path)

  set_header
  request.body = params[:payload]

  handle_request
end
get() click to toggle source
# File lib/hawkei/request.rb, line 69
def get
  @request = Net::HTTP::Get.new(uri)

  set_header

  handle_request
end
post() click to toggle source
# File lib/hawkei/request.rb, line 51
def post
  @request = Net::HTTP::Post.new(uri.path)

  set_header
  request.body = params[:payload]

  handle_request
end
put() click to toggle source
# File lib/hawkei/request.rb, line 60
def put
  @request = Net::HTTP::Put.new(uri.path)

  set_header
  request.body = params[:payload]

  handle_request
end

Private Instance Methods

handle_request() click to toggle source
# File lib/hawkei/request.rb, line 88
def handle_request
  response = http.request(request)

  case [response.code_type]
  when [Net::HTTPOK], [Net::HTTPCreated], [Net::HTTPAccepted]
    response
  when [Net::HTTPUnauthorized]
    raise RequestError.new(response, message: 'Unauthorized, please check your api key')
  when [Net::HTTPNotFound]
    raise RequestError.new(response, message: 'Requested Resource not found')
  when [Net::HTTPRequestTimeOut]
    raise RequestError.new(response, message: 'Server timeout, verify status of the server')
  when [Net::HTTPInternalServerError]
    raise RequestError.new(response, message: 'Server Error, please check with Hawkei')
  else
    raise RequestError, response
  end
end
set_header() click to toggle source
# File lib/hawkei/request.rb, line 107
def set_header
  params[:headers].each do |(type, value)|
    formated_type = type.to_s.split(/_/).map(&:capitalize).join('-')
    request[formated_type] = value
  end
end
setup_ssl() click to toggle source
# File lib/hawkei/request.rb, line 114
def setup_ssl
  http.use_ssl     = true
  http.ca_file     = params[:ca_file]
  http.verify_mode = params[:verify_mode]
end
uri() click to toggle source
# File lib/hawkei/request.rb, line 120
def uri
  @uri ||= URI(params[:url])
end
uri_proxy() click to toggle source
# File lib/hawkei/request.rb, line 124
def uri_proxy
  @uri_proxy ||=
    if params[:proxy]
      URI(params[:proxy])
    else
      OpenStruct.new
    end
end