class Besepa::BankAccount

Constants

FIELDS

Attributes

customer[RW]
mandate[RW]

Public Class Methods

klass_name() click to toggle source
# File lib/besepa/bank_account.rb, line 18
def self.klass_name
  "bank_account"
end

Protected Class Methods

api_path(filters={}) click to toggle source
# File lib/besepa/bank_account.rb, line 76
def self.api_path(filters={})
  customer_id = filters[:customer_id]

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

Public Instance Methods

generate_signature_request() click to toggle source
# File lib/besepa/bank_account.rb, line 47
def generate_signature_request
  response = put "/#{api_path({customer_id: customer_id})}/generate_signature_request"
  process_attributes(response['response'])
  self
end
replace(iban, bic, bank_name=nil, signature_type=nil, phone_number=nil, redirect_after_signature=nil) click to toggle source
# File lib/besepa/bank_account.rb, line 28
def replace(iban, bic, bank_name=nil, signature_type=nil, phone_number=nil, redirect_after_signature=nil)
  payload = {}
  payload[self.class.klass_name] = {
    iban: iban,
    bic: bic,
    bank_name: bank_name,
  }
  if !signature_type.nil?
    payload[self.class.klass_name][:mandate] = {
      signature_type: signature_type,
      phone_number: phone_number,
      redirect_after_signature: redirect_after_signature,
    }
  end
  response = post "/#{api_path({customer_id: customer_id})}/replace", payload
  process_attributes(response['response'])
  self
end
set_as_default() click to toggle source
# File lib/besepa/bank_account.rb, line 22
def set_as_default
  response = put "/#{api_path({customer_id: customer_id})}/set_as_default"
  process_attributes(response['response'])
  self
end
stats() click to toggle source
# File lib/besepa/bank_account.rb, line 63
def stats
  response = get "#{api_path}/stats"
  response['response']
end
to_hash() click to toggle source
# File lib/besepa/bank_account.rb, line 53
def to_hash
  values = {}
  self.class::FIELDS.each do |key|
    values[key] = self.send("#{key.to_s}")
  end
  values[:mandate] = mandate.to_hash if mandate
  values[:customer] = customer.to_hash if customer
  values
end

Protected Instance Methods

api_path(filters={}) click to toggle source
# File lib/besepa/bank_account.rb, line 86
def api_path(filters={})
  "#{self.class.api_path(filters)}/#{CGI.escape(id)}"
end
process_attributes(attrs) click to toggle source
# File lib/besepa/bank_account.rb, line 90
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.mandate = Besepa::Mandate.new(attrs['mandate']) if attrs['mandate']
  self.customer = Besepa::Customer.new(attrs['customer']) if attrs['customer']
  process_activities(attrs)
  self
end