Class: EwayRapid::Message::Convert::InternalTransactionToStatus

Inherits:
Object
  • Object
show all
Defined in:
lib/eway_rapid/message/convert/internal_transaction_to_status.rb

Instance Method Summary collapse

Instance Method Details

#do_convert(transaction) ⇒ Models::TransactionStatus

Parameters:

Returns:



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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)
  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) ⇒ Object



44
45
46
47
48
49
50
51
# File 'lib/eway_rapid/message/convert/internal_transaction_to_status.rb', line 44

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) ⇒ Models::ProcessingDetails

Parameters:

Returns:



25
26
27
28
29
30
31
# File 'lib/eway_rapid/message/convert/internal_transaction_to_status.rb', line 25

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) ⇒ Object

Parameters:



34
35
36
37
38
39
40
41
42
# File 'lib/eway_rapid/message/convert/internal_transaction_to_status.rb', line 34

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