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: 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
|