class EwayRapid::Message::Convert::InternalTransactionToStatus

Public Instance Methods

do_convert(transaction) click to toggle source

@param [InternalModels::Transaction] transaction @return [Models::TransactionStatus]

# File lib/eway_rapid/message/convert/internal_transaction_to_status.rb, line 8
def do_convert(transaction)
  transaction_status = Models::TransactionStatus.new
  transaction_status.beagle_score = transaction.beagle_score if transaction.beagle_score
  transaction_status.status = transaction.transaction_status
  transaction_status.total = transaction.total_amount
  transaction_status.processing_details = get_processing_details(transaction)
  transaction_status.verification_result = get_verification_result(transaction)
  transaction_status.transaction_date_time = transaction.transaction_date_time
  transaction_status.transaction_captured = transaction.transaction_captured
  transaction_status.source = transaction.source
  transaction_status.max_refund = transaction.max_refund
  transaction_status.original_transaction_id = transaction.original_transaction_id
  transaction_status.fraud_action = transaction.fraud_action
  transaction_status.currency_code = transaction.currency_code

  begin
    transaction_status.transaction_id = Integer(transaction.transaction_id) if transaction.transaction_id
  rescue
    raise ArgumentError.new 'Invalid transaction id when converting transaction to internal transaction status'
  end
  transaction_status
end
get_beagle_status(status) click to toggle source
# File lib/eway_rapid/message/convert/internal_transaction_to_status.rb, line 52
def get_beagle_status(status)
  begin
    index = Integer(status)
    Enums::BeagleVerifyStatus.calculate_beagle_status(index)
  rescue StandardError
    return nil
  end
end
get_processing_details(transaction) click to toggle source

@param [InternalModels::Transaction] transaction @return [Models::ProcessingDetails]

# File lib/eway_rapid/message/convert/internal_transaction_to_status.rb, line 33
def get_processing_details(transaction)
  processing_details = Models::ProcessingDetails.new
  processing_details.authorisation_code = transaction.authorisation_code
  processing_details.response_code = transaction.response_code
  processing_details.response_message = transaction.response_message
  processing_details
end
get_verification_result(transaction) click to toggle source

@param [InternalModels::Transaction] transaction

# File lib/eway_rapid/message/convert/internal_transaction_to_status.rb, line 42
def get_verification_result(transaction)
  converter = VerificationToVerificationResult.new
  verification_result = converter.do_convert(transaction.verification)
  if transaction.beagle_verification
    verification_result.beagle_email = get_beagle_status(transaction.beagle_verification.phone)
    verification_result.beagle_phone = get_beagle_status(transaction.beagle_verification.email)
  end
  verification_result
end