class AuthorizeNet::Reporting::Response
The CIM
response class.
Public Class Methods
new(raw_response, transaction)
click to toggle source
Constructs a new response object from raw_response in the context of transaction. You don‘t typically construct this object yourself, as AuthorizeNet::Reeporting::Transaction will build one for you when it makes the request to the gateway.
Calls superclass method
AuthorizeNet::XmlResponse::new
# File lib/authorize_net/reporting/response.rb, line 11 def initialize(raw_response, transaction) super unless connection_failure? begin @batch_list = @root.at_css('batchList') @transactions = @root.at_css('transactions') @transaction = @root.at_css('transaction') rescue @raw_response = $! end end end
Public Instance Methods
batch_list()
click to toggle source
Returns an Array of Batch
objects built from the entities returned in the response. Returns nil if no batchList was returned.
# File lib/authorize_net/reporting/response.rb, line 26 def batch_list unless @batch_list.nil? batches = [] @batch_list.element_children.each do |child| batches <<= build_entity(child, Fields::BATCH_ENTITY_DESCRIPTION) unless child.nil? end return batches unless batches.length == 0 end end
transaction()
click to toggle source
Builds and returns a TransactionDetail entity built from the response. If no transaction was found, returns nil.
# File lib/authorize_net/reporting/response.rb, line 73 def transaction unless @transaction.nil? transaction = build_entity(@transaction, Fields::TRANSACTION_DETAILS_ENTITY_DESCRIPTION) ip = node_content_unless_nil(@transaction.at_css('customerIP')) unless ip.nil? transaction.customer ||= AuthorizeNet::CIM::CustomerProfile.new() transaction.customer.ip = ip end tax_exempt = node_content_unless_nil(@transaction.at_css('taxExempt')) unless tax_exempt.nil? transaction.order ||= AuthorizeNet::Order.new() transaction.order.tax_exempt = value_to_boolean(tax_exempt) end tax = @transaction.at_css('tax') unless tax.nil? transaction.order ||= AuthorizeNet::Order.new() tax_amount = node_content_unless_nil(tax.at_css('amount')) transaction.order.tax_amount = value_to_decimal(tax_amount) unless tax_amount.nil? transaction.order.tax_name = node_content_unless_nil(tax.at_css('name')) transaction.order.tax_description = node_content_unless_nil(tax.at_css('description')) end shipping = @transaction.at_css('shipping') unless shipping.nil? transaction.order ||= AuthorizeNet::Order.new() shipping_amount = node_content_unless_nil(shipping.at_css('amount')) transaction.order.shipping_amount = value_to_decimal(shipping_amount) unless shipping_amount.nil? transaction.order.shipping_name = node_content_unless_nil(shipping.at_css('name')) transaction.order.shipping_description = node_content_unless_nil(shipping.at_css('description')) end duty = @transaction.at_css('duty') unless duty.nil? transaction.order ||= AuthorizeNet::Order.new() duty_amount = node_content_unless_nil(duty.at_css('amount')) transaction.order.duty_amount = value_to_decimal(duty_amount) unless duty_amount.nil? transaction.order.duty_name = node_content_unless_nil(duty.at_css('name')) transaction.order.duty_description = node_content_unless_nil(duty.at_css('description')) end line_items = @transaction.at_css('lineItems') unless line_items.nil? transaction.order ||= AuthorizeNet::Order.new() line_items.element_children.each do |child| line_item = build_entity(child, Fields::LINE_ITEM_ENTITY_DESCRIPTION) transaction.order.add_line_item(line_item) end end # Really not sure what to do with customer type here. It should go on a payment customer_type = node_content_unless_nil(@transaction.at_css('customer type')) unless customer_type.nil? transaction.customer ||= AuthorizeNet::CIM::CustomerProfile.new() transaction.customer.payment_profiles = [AuthorizeNet::CIM::PaymentProfile.new(:cust_type => customer_type)] end subscription = @transaction.at_css('subscription') unless subscription.nil? subscription_id = node_content_unless_nil(@transaction.at_css('subscription').at_css('id')) transaction.subscription_id = value_to_decimal(subscription_id) unless subscription_id.nil? pay_num = node_content_unless_nil(@transaction.at_css('subscription').at_css('payNum')) transaction.subscription_paynum = value_to_decimal(pay_num) unless pay_num.nil? end solution = @transaction.at_css('solution') unless solution.nil? solution_id = node_content_unless_nil(@transaction.at_css('solution').at_css('id')) transaction.solution_id = value_to_decimal(solution_id) unless solution_id.nil? transaction.solution_name = node_content_unless_nil(@transaction.at_css('solution').at_css('name')) end returned_items = @transaction.at_css('returnedItems') unless returned_items.nil? transaction.returns ||= AuthorizeNet::Reporting::ReturnedItem.new returned_items.element_children.each do |child| returned_item = build_entity(child, Fields::RETURNED_ITEM_ENTITY_DESCRIPTION) transaction.returns.add_returned_item(returned_item) end end return transaction end end
transactions()
click to toggle source
Returns an Array of TransactionDetail objects built from the entities returned in the response. Returns nil if no transactions were returned.
# File lib/authorize_net/reporting/response.rb, line 37 def transactions unless @transactions.nil? transactions = [] @transactions.element_children.each do |child| unless child.nil? transaction = build_entity(child, Fields::TRANSACTION_DETAILS_ENTITY_DESCRIPTION) # handle some stuff thats too tricky for EntityDecription to handle first_name = node_content_unless_nil(child.at_css('firstName')) last_name = node_content_unless_nil(child.at_css('lastName')) unless first_name.nil? && last_name.nil? address = AuthorizeNet::Address.new(:first_name => first_name, :last_name => last_name) transaction.customer = AuthorizeNet::Customer.new(:address => address) end invoice_number = node_content_unless_nil(child.at_css('invoiceNumber')) unless invoice_number.nil? transaction.order = AuthorizeNet::Order.new(:invoice_num => invoice_number) end subscription = child.at_css('subscription') unless subscription.nil? subscription_id = node_content_unless_nil(child.at_css('subscription').at_css('id')) transaction.subscription_id = subscription_id unless subscription_id.nil? pay_num = node_content_unless_nil(child.at_css('subscription').at_css('payNum')) transaction.subscription_paynum = pay_num unless pay_num.nil? end transactions <<= transaction end end return transactions unless transactions.length == 0 end end