class Bluzelle::Swarm::Request

Public Class Methods

execute(options = {}) click to toggle source
# File lib/bluzelle/swarm/request.rb, line 9
def execute(options = {})
  resp = RestClient::Request.execute(parse_options(options))
rescue RestClient::ExceptionWithResponse => e
  case e.http_code
  when 404, 500
    raise Error::ApiError, e.response.body
  else
    error(e)
  end
else
  success(resp)
end

Private Class Methods

error(err) click to toggle source
# File lib/bluzelle/swarm/request.rb, line 33
def error(err)
  body = JSON.parse(err.response.body)
  error_message = body.dig('error', 'message')

  if error_message.is_a?(String)
    raise Error::ApiError, error_message
  else
    raise Error::ApiError, 'error occurred'
  end
end
parse_options(options = {}) click to toggle source
# File lib/bluzelle/swarm/request.rb, line 24
def parse_options(options = {})
  {
    method: options[:method],
    url: options[:url],
    payload: JSON.generate(options[:payload]),
    headers: options[:headers]
  }
end
success(resp) click to toggle source
# File lib/bluzelle/swarm/request.rb, line 44
def success(resp)
  JSON.parse(resp.body)
end