class Marfa::Helpers::HTTP::Rest

Helpers to use Rest requests

Public Class Methods

_log_body(type, code, body) click to toggle source

logging body response of request @param type [String] - type of request @param code [String] - http code response @param body [String] - response body @example

_log_body(type, response.code, response.body)
# File lib/marfa/helpers/http/rest.rb, line 159
def self._log_body(type, code, body)
  return if $logger.nil?
  if code == 200
    $logger.info("REST #{type} code    = #{code}")
    $logger.debug("REST #{type} body    = #{body}")
  else
    $logger.error("REST #{type} code    = #{code}")
    $logger.error("REST #{type} body    = #{body}")
  end
end
_log_head(type, url, headers, payload = nil) click to toggle source

logging head of request @param type [String] - type of request @param url [String] - url @param headers [Hash] - headers hash @param payload [Hash] - payload @example

_log_head(type, url, headers, payload)
# File lib/marfa/helpers/http/rest.rb, line 146
def self._log_head(type, url, headers, payload = nil)
  return if $logger.nil?
  $logger.info("REST #{type} url     = #{url}")
  $logger.info("REST #{type} headers = #{headers}")
  $logger.info("REST #{type} payload = #{payload}") unless payload.nil?
end
delete(url, payload = {}, headers = {}, &block) click to toggle source

DELETE request @param url [String] - url @param payload [String] - request body @param headers [Hash] - headers hash @param block [Proc] - block code to run @example

Rest.delete(url, payload, headers) do |response|

@return response [RestClient::Response]

# File lib/marfa/helpers/http/rest.rb, line 119
def self.delete(url, payload = {}, headers = {}, &block)
  _log_head('DEL', url, headers, payload)

  if block.nil?
    response = RestClient.delete(url, headers)
    _log_body('DEL', response.code, response.body)
    response
  else
    RestClient::Request.execute(
      method: :delete,
      url: url,
      payload: payload,
      headers: headers
    ) do |response|
      _log_body('DEL', response.code, response.body)
      block.call(response)
    end
  end
end
get(url, headers = {}, &block) click to toggle source

GET request @param url [String] - url @param headers [Hash] - headers hash @example

response = Rest.get(url, headers)

@return response [RestClient::Response]

# File lib/marfa/helpers/http/rest.rb, line 16
def self.get(url, headers = {}, &block)
  _log_head('GET', url, headers)

  if block.nil?
    response = RestClient.get(url, headers)
    _log_body('GET', response.code, response.body)
    response
  else
    RestClient.get(url, headers) do |response|
      _log_body('GET', response.code, response.body)
      block.call(response)
    end
  end
end
head(url, headers = {}, &block) click to toggle source

HEAD request @param url [String] - url @param headers [Hash] - headers hash @example

response = Rest.head(url)

@return response [RestClient::Response]

# File lib/marfa/helpers/http/rest.rb, line 37
def self.head(url, headers = {}, &block)
  _log_head('HEA', url, headers)

  if block.nil?
    response = RestClient.head(url, headers)
    _log_body('HEA', response.code, response.body)
    response
  else
    RestClient.head(url, headers) do |response|
      _log_body('HEA', response.code, response.body)
      block.call(response)
    end
  end
end
post(url, payload, headers={}, &block) click to toggle source

POST request @param url [String] - url @param payload [String] - request body @param headers [Hash] - headers hash @param block [Proc] - block code to run @example

response = Rest.post(url, payload)
Rest.post(url, payload) do |response|

@return response [RestClient::Response]

# File lib/marfa/helpers/http/rest.rb, line 61
def self.post (url, payload, headers={}, &block)
  _log_head('POS', url, headers, payload)

  if block.nil?
    response = RestClient.post(url, payload, headers)
    _log_body('POS', response.code, response.body)

    response
  else
    RestClient::Request.execute(
      method: :post,
      url: url,
      payload: payload,
      headers: headers
    ) do |response|
      _log_body('POS', response.code, response.body)
      block.call(response)
    end
  end
end
put(url, payload, headers = {}, &block) click to toggle source

PUT request @param url [String] - url @param payload [String] - request body @param headers [Hash] - headers hash @param block [Proc] - block code to run @example

response = Rest.put(url, payload)
Rest.put(url, payload) do |response|

@return response [RestClient::Response]

# File lib/marfa/helpers/http/rest.rb, line 91
def self.put(url, payload, headers = {}, &block)
  _log_head('PUT', url, headers, payload)

  if block.nil?
    response = RestClient.put(url, payload, headers)
    _log_body('PUT', response.code, response.body)
    response
  else
    RestClient::Request.execute(
      method: :put,
      url: url,
      payload: payload,
      headers: headers
    ) do |response|
      _log_body('PUT', response.code, response.body)
      block.call(response)
    end
  end
end