class Micropayment::Customer
Constants
- IDENTIFIER
Public Class Methods
create!(params={})
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 57 def self.create!(params={}) params.symbolize_keys! bank_account_params = params.delete(:bank_account) address_params = params.delete(:address) create_params = {}.tap do |hsh| hsh[:customerId] = params.delete(:customerId) if params.has_key?(:customerId) hsh[:freeParams] = params end result = Micropayment::Debit.customerCreate( create_params ) if result["error"] == "0" create_params[:customerId] ||= result["customerId"] customer = self.new( create_params ) customer.bank_account = bank_account_params if bank_account_params customer.address = address_params if address_params customer else raise "Customer#create! - #{result["error"]}: #{result["errorMessage"]}" end end
find(customerId)
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 47 def self.find(customerId) result = Micropayment::Debit.customerGet( :customerId => customerId ) case result["error"] when "0" self.new( :customerId => customerId, :freeParams => result["freeParams"] ) else raise "Customer#find - #{result["error"]}: #{result["errorMessage"]}" end end
find_create_or_update_by_id(id, params={})
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 83 def self.find_create_or_update_by_id(id, params={}) params.symbolize_keys! obj = (find(id) rescue nil) obj ? obj.update!(params) : create!( params.merge(:customerId => id) ) end
find_or_create_by_id(id, params={})
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 77 def self.find_or_create_by_id(id, params={}) params.symbolize_keys! obj = (find(id) rescue nil) obj ? obj : create!( params.merge(:customerId => id) ) end
session_list()
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 89 def self.session_list # TODO wrap in an array Micropayment::Debit.sessionList( :customerId => id ) end
Public Instance Methods
address()
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 11 def address @address ||= (Micropayment::Address.find( id ) rescue nil) end
address=(params={})
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 7 def address=(params={}) @address = Micropayment::Address.create!( id, params ) end
bank_account()
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 19 def bank_account @bank_account ||= (Micropayment::BankAccount.find( id ) rescue nil) end
bank_account=(params={})
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 15 def bank_account=(params={}) @bank_account = Micropayment::BankAccount.create!( id, params ) end
update!(params={})
click to toggle source
# File lib/micropayment-rails/classes/customer.rb, line 26 def update!(params={}) params.symbolize_keys! bank_account_params = params.delete(:bank_account) address_params = params.delete(:address) update_params = {}.tap do |hsh| hsh[:customerId] = id hsh[:freeParams] = params end result = Micropayment::Debit.customerSet( update_params ) if result["error"] == "0" self.bank_account = bank_account_params if bank_account_params self.customer.address = address_params if address_params self else raise "Customer#update! - #{result["error"]}: #{result["errorMessage"]}" end end