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