class TresDelta::CreditCard

Attributes

billing_address[R]
customer[R]
expiration_month[RW]
expiration_year[RW]
name[R]
nickname[R]
number[R]
security_code[R]
token[RW]
type[R]

Public Class Methods

create(customer, params = {}) click to toggle source
# File lib/tres_delta/credit_card.rb, line 33
def create(customer, params = {})
  CreditCard.new(params).tap do |credit_card|
    add_card = Vault.add_stored_credit_card(customer, credit_card)
    raise InvalidCreditCard unless add_card.success?

    credit_card.token = add_card.token
  end
end
find(customer, token, load_number = false) click to toggle source
# File lib/tres_delta/credit_card.rb, line 42
def find(customer, token, load_number = false)
  stored_card_details = Vault.get_stored_credit_card(customer, token, load_number)
  raise CreditCardNotFound unless stored_card_details.success?

  CreditCard.new(stored_card_details.credit_card.merge(customer: customer))
end
new(params = {}) click to toggle source
# File lib/tres_delta/credit_card.rb, line 7
def initialize(params = {})
  @number           = params[:number] || params[:card_account_number]
  @expiration_month = params[:expiration_month]
  @expiration_year  = params[:expiration_year]
  @token            = params[:token]
  @name             = params[:name]
  @billing_address  = Address.new(params[:billing_address] || {})
  @type             = params[:type] || params[:card_type]
  @nickname         = params[:nickname]
  @customer         = params[:customer] || Customer.new
  @security_code    = params[:security_code]
end

Public Instance Methods

has_security_code?() click to toggle source
# File lib/tres_delta/credit_card.rb, line 28
def has_security_code?
  security_code.to_s.strip.size > 0
end
save() click to toggle source
# File lib/tres_delta/credit_card.rb, line 20
def save
  if token.nil?
    Vault.add_stored_credit_card(customer, self).success?
  else
    Vault.update_stored_credit_card(customer, self).success?
  end
end