Class: T2Airtime::Topup

Inherits:
Object
  • Object
show all
Defined in:
lib/t2_airtime/serializer.rb

Class Method Summary collapse

Class Method Details

.serialize(data, ts = Time.zone.now.to_s) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/t2_airtime/serializer.rb', line 5

def self.serialize(data, ts = Time.zone.now.to_s)
  {
    type: 'topup',
    balance: data[:balance],
    balanceDisplay: "#{Money.new(Integer(data[:balance]) * 100, Account.currency).format}",
    msisdn: data[:destination_msisdn],
    destinationMsisdn: data[:destination_msisdn],
    transactionId: data[:transactionid],
    transactionAuthenticationKey: data[:authentication_key],
    transactionErrorCode: Integer(data[:error_code]),
    transactionErrorTxt: data[:error_txt],
    referenceOperator: data[:reference_operator],
    actualProductSent: data[:actual_product_sent],
    sms: data[:sms],
    smsSent: data[:sms_sent],
    smsText: data[:sender_text],
    cid1: data[:cid1],
    cid2: data[:cid2],
    cid3: data[:cid3],
    currency: data[:originating_currency],
    localCurrency: data[:destination_currency],
    countryId: Integer(data[:countryid]), 
    countryName: data[:country],
    operatorId: Integer(data[:operatorid]),
    operatorName: data[:operator],
    operatorLogo: T2Airtime::Util.operator_logo_url(data[:operatorid]),  
    productName: "#{Money.new(Integer(data[:product_requested]) * 100, data[:destination_currency]).format}",
    productLocalCurrency: data[:destination_currency],
    productLocalCurrencySymbol: Money::Currency.new(data[:destination_currency]).symbol,
    productCurrency: .currency,
    productCurrencySymbol: Money::Currency.new(.currency).symbol,
    productLocalPrice: Float(data[:product_requested]),
    productRetailPrice: Float(data[:retail_price]),
    productWholesalePrice: Float(data[:wholesale_price]),  
    executedAt: T2Airtime::Util.format_time(ts)
  }
end