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
22
23
24
25
26
27
28
29
# 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) ⇒ Object



52
53
54
55
56
57
58
59
# 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) ⇒ Models::ProcessingDetails

Parameters:

Returns:



33
34
35
36
37
38
39
# 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) ⇒ Object

Parameters:



42
43
44
45
46
47
48
49
50
# 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