class T2Airtime::Topup

Public Class Methods

serialize(data, ts = Time.zone.now.to_s) click to toggle source
# 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: Account.currency,
    productCurrencySymbol: Money::Currency.new(Account.currency).symbol,
    productLocalPrice: Float(data[:product_requested]),
    productRetailPrice: Float(data[:retail_price]),
    productWholesalePrice: Float(data[:wholesale_price]),  
    executedAt: T2Airtime::Util.format_time(ts)
  }
end