Class: Portmone::Transaction

Inherits:
Object
  • Object
show all
Defined in:
lib/portmone/transaction.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Transaction

Returns a new instance of Transaction.

Raises:



5
6
7
8
9
10
11
# File 'lib/portmone/transaction.rb', line 5

def initialize(data)
  raise Error, "Wrong data: Hash expected, got #{data.inspect}" unless data.is_a?(Hash)

  @timezone = data.delete(:timezone)
  @currency = data.delete(:currency)
  @data = data
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



3
4
5
# File 'lib/portmone/transaction.rb', line 3

def data
  @data
end

Instance Method Details

#bill_amountObject



25
26
27
# File 'lib/portmone/transaction.rb', line 25

def bill_amount
  Money.from_amount(data['bill_amount'].to_f, @currency)
end

#bill_dateObject



13
14
15
# File 'lib/portmone/transaction.rb', line 13

def bill_date
  data['bill_date'] && Date.parse(data['bill_date'])
end

#order_idObject



29
30
31
# File 'lib/portmone/transaction.rb', line 29

def order_id
  data.dig('shop_bill_id')
end

#paid?Boolean

Returns:

  • (Boolean)


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

def paid?
  status == 'PAYED' || status == 'PREAUTH'
end

#pay_order_timeObject



21
22
23
# File 'lib/portmone/transaction.rb', line 21

def pay_order_time
  data['pay_order_date'] && ActiveSupport::TimeZone[@timezone].parse(data['pay_order_date'])
end

#pay_timeObject



17
18
19
# File 'lib/portmone/transaction.rb', line 17

def pay_time
  data['pay_date'] && ActiveSupport::TimeZone[@timezone].parse(data['pay_date'])
end

#reversed?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/portmone/transaction.rb', line 37

def reversed?
  status == 'RETURN'
end