Sha256: 8609bb57f3028945fedc210988fec02a7edf72eb5cb1be02bbb4ff9d2691e791

Contents?: true

Size: 708 Bytes

Versions: 3

Compression:

Stored size: 708 Bytes

Contents

module Laundry
	module PaymentsGateway

		class TransactionResponse < ResponseModel

			def initialize_with_response(response)
				self.record = parse(response)
			end

			def success?
				pg_response_type == 'A'
			end

			def full_transaction
				require_merchant!
				self.merchant.transactions.find pg_payment_method_id, pg_trace_number
			end

			private

			def parse(response)
				return response if response.is_a? Hash
				data = {}
				res = response[:execute_socket_query_response][:execute_socket_query_result].split("\n")
				res.each do |key_value_pair|
					kv = key_value_pair.split('=')
					if kv.size == 2
						data[ kv[0].to_sym ] = kv[1]
					end
				end
				data
			end

		end

	end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
laundry-0.0.8 lib/laundry/payments_gateway/models/transaction_response.rb
laundry-0.0.7 lib/laundry/payments_gateway/models/transaction_response.rb
laundry-0.0.6 lib/laundry/payments_gateway/models/transaction_response.rb