class Besepa::Subscription

Constants

FIELDS

Attributes

customer[RW]
debtor_bank_account[RW]
product[RW]

Public Class Methods

api_path(filters={}) click to toggle source
# File lib/besepa/subscription.rb, line 29
def self.api_path(filters={})
  customer_id = filters[:customer_id]
  if customer_id
    "#{Customer.api_path}/#{CGI.escape(customer_id)}/subscriptions"
  else
    "/subscriptions"
  end
end
query_params(filters = {}) click to toggle source
# File lib/besepa/subscription.rb, line 38
def self.query_params(filters = {})
  filters = filters.dup
  filters.delete(:customer_id)
  filters
end

Public Instance Methods

api_path(filters={}) click to toggle source
# File lib/besepa/subscription.rb, line 49
def api_path(filters={})
  "#{self.class.api_path(filters)}/#{CGI.escape(id)}"
end
process_attributes(attrs) click to toggle source
# File lib/besepa/subscription.rb, line 53
def process_attributes(attrs)
  self.class::FIELDS.each do |key|
    self.send("#{key.to_s}=", attrs[key.to_s] || attrs[key.to_sym])
  end
  self.debtor_bank_account = Besepa::BankAccount.new(attrs['debtor_bank_account']) if attrs['debtor_bank_account']
  self.product = Besepa::Product.new(attrs['product']) if attrs['product']
  self.customer = Besepa::Customer.new(attrs['customer']) if attrs['customer']
  process_activities(attrs)
  self
end
stats() click to toggle source
# File lib/besepa/subscription.rb, line 44
def stats
  response = get "#{api_path}/stats"
  response['response']
end
to_hash() click to toggle source
# File lib/besepa/subscription.rb, line 18
def to_hash
  values = {}
  self.class::FIELDS.each do |key|
    values[key] = self.send("#{key.to_s}")
  end
  values[:debtor_bank_account] = debtor_bank_account.to_hash if debtor_bank_account
  values[:product] = product.to_hash if product
  values[:customer] = customer.to_hash if customer
  values
end