Class: MerchantSidekick::Payment

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/merchant_sidekick/payment.rb

Direct Known Subclasses

ActiveMerchant::CreditCardPayment

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.class_for(payment_object) ⇒ Object

Determines which payment class to use based on the payment object passed. overriden this if other payment types must be supported, e.g. for bank transfer, etc.

E.g.

Payment.class_for(ActiveMerchant::Billing::CreditCard.new(...))
#=>  MerchantSidekick::ActiveMerchant::CreditCardPayment


25
26
27
# File 'lib/merchant_sidekick/payment.rb', line 25

def self.class_for(payment_object)
  MerchantSidekick::ActiveMerchant::CreditCardPayment
end

.content_column_namesObject



29
30
31
# File 'lib/merchant_sidekick/payment.rb', line 29

def self.content_column_names
  content_columns.map(&:name) - %w(payable_type payable_id kind reference message action params test cents currency lock_version position type uuid created_at updated_at success)
end

Instance Method Details

#content_attributesObject

return only attributes with relevant content



47
48
49
# File 'lib/merchant_sidekick/payment.rb', line 47

def content_attributes
  self.attributes.reject {|k,v| !self.content_column_names.include?(k.to_s)}.symbolize_keys
end

#content_column_namesObject

returns content column name strings



52
53
54
# File 'lib/merchant_sidekick/payment.rb', line 52

def content_column_names
  self.class.content_column_names
end

#payment_typeObject

override in sublcass infers payment



37
38
39
# File 'lib/merchant_sidekick/payment.rb', line 37

def payment_type
  :payment
end

#success?Boolean

returns true if the payment transaction was successful

Returns:

  • (Boolean)


42
43
44
# File 'lib/merchant_sidekick/payment.rb', line 42

def success?
  !!(self[:success] || false)
end