class MagicAdmin::Http::Request

Http Request and its methods are accessible on the Magic instance by the http_client.http_request attribute. It provides methods to interact with the http_request.

Public Class Methods

request(method, url, options) click to toggle source

Description:

Method configure request object and provides request object
based on method argument.

Arguments:

method: http method
url: get request url
options: a hash contains params and headers for request

Returns:

A request object.
# File lib/magic-admin/http/request.rb, line 24
def request(method, url, options)
  case method
  when :get, "get" then new.get(url, options)
  when :post, "post" then new.post(url, options)
  else
    raise APIError.new("Request method not supported.", { http_method: method })
  end
end

Public Instance Methods

get(url, options) click to toggle source

Description:

Method configure request object and provides you get request object.

Arguments:

url: get request url
options: a hash contains params and headers for request

Returns:

A get request object.
# File lib/magic-admin/http/request.rb, line 43
def get(url, options)
  headers = options[:headers] || {}
  params = options[:params] || {}
  url = url_with_params(url, params)
  req = Net::HTTP::Get.new(url)
  request_with_headers(req, headers)
end
post(url, options) click to toggle source

Description:

Method configure request object and provides you post request object.

Arguments:

url: post request url
options: a hash contains params and headers for request

Returns:

A post request object.
# File lib/magic-admin/http/request.rb, line 60
def post(url, options)
  headers = options[:headers] || {}
  params = options[:params] || {}
  req = Net::HTTP::Post.new(url)
  req = request_with_headers(req, headers)
  request_with_params(req, params)
end

Private Instance Methods

request_with_headers(req, headers) click to toggle source
# File lib/magic-admin/http/request.rb, line 70
def request_with_headers(req, headers)
  headers.each do |key, val|
    req[key.to_s] = val
  end
  req
end
request_with_params(req, params) click to toggle source
# File lib/magic-admin/http/request.rb, line 82
def request_with_params(req, params)
  req.body = params.to_json
  req
end
url_with_params(url, params) click to toggle source
# File lib/magic-admin/http/request.rb, line 77
def url_with_params(url, params)
  url.query = URI.encode_www_form(params)
  url
end