lib/pensio_api/transaction.rb in pensio_api-0.2.3 vs lib/pensio_api/transaction.rb in pensio_api-0.3.0
- old
+ new
@@ -13,10 +13,11 @@
attr_reader :card_token
attr_reader :card_masked_pan
attr_reader :order_id
attr_reader :merchant_currency
attr_reader :card_holder_currency
+ attr_reader :chargeback_events
# constants for transaction statuses
STATUS_RECURRING_CONFIRMED = 'recurring_confirmed'
STATUS_RELEASED = 'released'
STATUS_CAPTURED = 'captured'
@@ -41,10 +42,12 @@
@order_id = @raw['ShopOrderId']
@merchant_currency = @raw['MerchantCurrency'].to_i
@card_holder_currency = @raw['CardHolderCurrency'].to_i
+
+ map_chargeback_events
end
def self.find(options={})
request = Request.new('/merchant/API/payments', options)
Responses::Transaction.new(request)
@@ -76,9 +79,27 @@
end
def billing_address
@billing_address ||= if @raw.has_key?('CustomerInfo') && @raw['CustomerInfo'].has_key?('BillingAddress')
BillingAddress.new(@raw['CustomerInfo']['BillingAddress'])
+ end
+ end
+
+ private
+
+ def map_chargeback_events
+ @chargeback_events = if raw_chargeback_events.is_a?(Array)
+ raw_chargeback_events.map { |c| PensioAPI::ChargebackEvent.new(c) }
+ else
+ [PensioAPI::ChargebackEvent.new(raw_chargeback_events)]
+ end
+ end
+
+ def raw_chargeback_events
+ @raw_chargeback_events ||= if @raw['ChargebackEvents']
+ @raw['ChargebackEvents']['ChargebackEvent']
+ else
+ []
end
end
end
end