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