class Besepa::Resource

Constants

ALLOWED_NILS

Attributes

activities[RW]

Public Class Methods

api_path(filters={}) click to toggle source
# File lib/besepa/resource.rb, line 18
def api_path(filters={})
  "/#{klass_name}s"
end
handle_errors(http_status, response) click to toggle source
# File lib/besepa/resource.rb, line 26
def handle_errors(http_status, response)
  error = response['error']
  desc = response['error_description']
  msgs = response['messages']
  if error == 'invalid_resource'
    raise Besepa::Errors::InvalidResourceError.new(error, desc, http_status, msgs)
  elsif error == 'not_found'
    raise Besepa::Errors::ResourceNotFoundError.new(error, desc, http_status, msgs)
  else
    raise Besepa::Errors::BesepaError.new(error, desc, http_status, msgs)
  end
end
klass_name() click to toggle source
# File lib/besepa/resource.rb, line 22
def klass_name
  name.split('::')[-1].downcase
end
new(attrs={}) click to toggle source
# File lib/besepa/resource.rb, line 46
def initialize(attrs={})
  process_attributes(attrs)
end
query_params(filters = {}) click to toggle source
# File lib/besepa/resource.rb, line 14
def query_params(filters = {})
  filters
end

Public Instance Methods

allowed_nils() click to toggle source
# File lib/besepa/resource.rb, line 70
def allowed_nils
  []
end
as_json() click to toggle source
# File lib/besepa/resource.rb, line 62
def as_json
  to_hash.as_json
end
klass_name() click to toggle source
# File lib/besepa/resource.rb, line 66
def klass_name
  self.class.name.split('::')[-1].downcase
end
serializable_hash() click to toggle source
# File lib/besepa/resource.rb, line 58
def serializable_hash
  to_hash
end
to_hash() click to toggle source
# File lib/besepa/resource.rb, line 50
def to_hash
  values = {}
  self.class::FIELDS.each do |key|
    values[key] = self.send("#{key.to_s}")
  end
  values
end

Protected Instance Methods

handle_errors(http_status, response) click to toggle source
# File lib/besepa/resource.rb, line 76
def handle_errors(http_status, response)
  Module.const_get(self.class.name).handle_errors(http_status, response)
end
process_activities(attrs) click to toggle source
# File lib/besepa/resource.rb, line 87
def process_activities(attrs)
  if attrs['activities']
    self.activities = Array.new
    attrs['activities'].each do |a|
      self.activities << Besepa::Activity.new(a)
    end
  end
end
process_attributes(attrs) click to toggle source
# File lib/besepa/resource.rb, line 80
def process_attributes(attrs)
  self.class::FIELDS.each do |key|
    self.send("#{key.to_s}=", attrs[key.to_s] || attrs[key.to_sym])
  end
  process_activities(attrs)
end