class Zoomba::Base

Public Class Methods

perform_request(action, data = {}) click to toggle source
# File lib/zoomba/base.rb, line 11
def self.perform_request(action, data = {})
  uri = URI("#{Zoomba.configuration.api_base_url}/#{resource_path_part}/#{action}")
  response = Net::HTTP.start(uri.host,
                             uri.port,
                             use_ssl: true) do |http|
    request = Net::HTTP::Post.new(uri)
    request.set_form_data(Zoomba.configuration.to_h.merge(data))
    http.request(request)
  end

  process_response(response)
end
process_response(response) click to toggle source
# File lib/zoomba/base.rb, line 28
def self.process_response(response)
  if response.code == '200'
    parsed = JSON.parse(response.body)
    return parsed if parsed['error'].nil?
    raise Error::ApiError.new(parsed['error']['message'],
                              parsed['error']['code'])
  end
end
resource_path_part() click to toggle source
# File lib/zoomba/base.rb, line 37
def self.resource_path_part
  to_s.downcase.sub('zoomba::', '')
end

Public Instance Methods

assign(args = {}) click to toggle source
# File lib/zoomba/base.rb, line 3
def assign(args = {})
  args.each do |key, value|
    next if key.to_sym == :id
    send("#{key}=", value)
  end
  self
end
perform_request(action, data = {}) click to toggle source
# File lib/zoomba/base.rb, line 24
def perform_request(action, data = {})
  self.class.perform_request(action, data)
end
resource_path_part() click to toggle source
# File lib/zoomba/base.rb, line 41
def resource_path_part
  self.class.resource_path_part
end