Class: RocketGate::Transaction

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Hashable, Validatable
Defined in:
lib/rocketgate/transaction.rb

Constant Summary collapse

TYPE =
{
  auth:          'CC_AUTH',
  confirmation:  'CC_CONFIRM',
  credit:        'CC_CREDIT',
  purchase:      'CC_PURCHASE',
  rebill_cancel: 'REBILL_CANCEL',
  rebill_update: 'REBILL_UPDATE',
  scrub:         'CARDSCRUB',
  ticket:        'CC_TICKET',
  void:          'CC_VOID'
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Hashable

included

Methods included from Validatable

included, #invalid_attributes, #validate!

Constructor Details

#initialize(*args) ⇒ Transaction

Returns a new instance of Transaction.



33
34
35
# File 'lib/rocketgate/transaction.rb', line 33

def initialize(*args)
  @amount, @customer, @credit_card, @currency, @id = *args
end

Instance Attribute Details

#amountObject

Returns the value of attribute amount.



6
7
8
# File 'lib/rocketgate/transaction.rb', line 6

def amount
  @amount
end

#credit_cardObject

Returns the value of attribute credit_card.



6
7
8
# File 'lib/rocketgate/transaction.rb', line 6

def credit_card
  @credit_card
end

#currencyObject

Returns the value of attribute currency.



6
7
8
# File 'lib/rocketgate/transaction.rb', line 6

def currency
  @currency
end

#customerObject

Returns the value of attribute customer.



6
7
8
# File 'lib/rocketgate/transaction.rb', line 6

def customer
  @customer
end

#idObject

Returns the value of attribute id.



6
7
8
# File 'lib/rocketgate/transaction.rb', line 6

def id
  @id
end

#reference_idObject

Returns the value of attribute reference_id.



6
7
8
# File 'lib/rocketgate/transaction.rb', line 6

def reference_id
  @reference_id
end

#typeObject

Returns the value of attribute type.



6
7
8
# File 'lib/rocketgate/transaction.rb', line 6

def type
  @type
end

Instance Method Details

#is_hashed?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/rocketgate/transaction.rb', line 67

def is_hashed?
  credit_card && !credit_card.card_hash.nil?
end

#is_referenced?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/rocketgate/transaction.rb', line 71

def is_referenced?
  [ TYPE[:confirmation], TYPE[:ticket], TYPE[:void] ].include?(type) && !reference_id.nil?
end

#to_hashObject



45
46
47
48
49
50
51
# File 'lib/rocketgate/transaction.rb', line 45

def to_hash
  if is_referenced?
    { referenceGUID: reference_id, transactionType: type }
  else
    super
  end
end

#valid?Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/rocketgate/transaction.rb', line 75

def valid?
  is_referenced? || is_hashed? || super
end