From c91a4c06fdb7ad43814ff479a88e6f114df8d0d5 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Mon, 9 Dec 2024 08:09:22 +0500 Subject: [PATCH] clean up transaction output --- api.py | 73 +++++++++++++++++++--------------------------------------- 1 file changed, 24 insertions(+), 49 deletions(-) diff --git a/api.py b/api.py index 277094b..d4e7b2d 100755 --- a/api.py +++ b/api.py @@ -23,6 +23,28 @@ def fetch_account_name(account_no): app.logger.error(f"Error fetching account name: {str(e)}") return None +def get_transaction_details(tx_data): + """Extract reference and sourceBank based on transaction type""" + descr1 = tx_data.get('descr1', '') + + if descr1 == "Favara Credit": + reference = tx_data.get('descr2', '') + # Extract sourceBank from descr3 (part before the first '-') + descr3 = tx_data.get('descr3', '') + sourceBank = descr3.split(' - ')[0] if ' - ' in descr3 else '' + elif descr1 == "IB Acc to Acc": + reference = tx_data.get('trxNumber', '') + sourceBank = "MIB" + else: + reference = tx_data.get('trxNumber', '') + sourceBank = "" + + return { + "ref": reference, + "trxDate": tx_data.get('trxDate', ''), + "sourceBank": sourceBank + } + def verify_transaction(benef_name, abs_amount, request_time, tx_data_list): for tx_data in tx_data_list: required_keys = ['trxDate', 'benefName', 'absAmount'] @@ -38,7 +60,6 @@ def verify_transaction(benef_name, abs_amount, request_time, tx_data_list): if (tx_benef_name == benef_name.strip().lower() and compare_amounts(tx_data['absAmount'], abs_amount) and time_diff <= timedelta(minutes=TIME_DIFF_LIMIT)): - # Return both verification status and transaction data return True, tx_data except ValueError as e: app.logger.error(f"Error processing transaction: {str(e)}") @@ -92,30 +113,7 @@ def verify_payment(): return jsonify({ "success": True, "message": "Payment verified using beneficiary name", - "transaction": { - "accountNo": tx_data.get('accountNo'), - "curCode": tx_data.get('curCode'), - "curCodeDesc": tx_data.get('curCodeDesc'), - "trxNumber": tx_data.get('trxNumber'), - "trxNumber2": tx_data.get('trxNumber2'), - "trxDate": tx_data.get('trxDate'), - "trxValDate": tx_data.get('trxValDate'), - "absAmount": tx_data.get('absAmount'), - "baseAmount": tx_data.get('baseAmount'), - "foreignAmount": tx_data.get('foreignAmount'), - "descr1": tx_data.get('descr1'), - "descr2": tx_data.get('descr2'), - "descr3": tx_data.get('descr3'), - "trxType": tx_data.get('trxType'), - "AddDate": tx_data.get('AddDate'), - "bankCode": tx_data.get('bankCode'), - "bankName": tx_data.get('bankName'), - "benefName": tx_data.get('benefName'), - "otherAccountNo": tx_data.get('otherAccountNo'), - "fromAcc": tx_data.get('fromAcc'), - "imageHash": tx_data.get('imageHash'), - "bankColor": tx_data.get('bankColor') - } + "transaction": get_transaction_details(tx_data) }) # If benefName verification failed or wasn't provided, try with accountNo @@ -127,30 +125,7 @@ def verify_payment(): return jsonify({ "success": True, "message": "Payment verified using account number", - "transaction": { - "accountNo": tx_data.get('accountNo'), - "curCode": tx_data.get('curCode'), - "curCodeDesc": tx_data.get('curCodeDesc'), - "trxNumber": tx_data.get('trxNumber'), - "trxNumber2": tx_data.get('trxNumber2'), - "trxDate": tx_data.get('trxDate'), - "trxValDate": tx_data.get('trxValDate'), - "absAmount": tx_data.get('absAmount'), - "baseAmount": tx_data.get('baseAmount'), - "foreignAmount": tx_data.get('foreignAmount'), - "descr1": tx_data.get('descr1'), - "descr2": tx_data.get('descr2'), - "descr3": tx_data.get('descr3'), - "trxType": tx_data.get('trxType'), - "AddDate": tx_data.get('AddDate'), - "bankCode": tx_data.get('bankCode'), - "bankName": tx_data.get('bankName'), - "benefName": tx_data.get('benefName'), - "otherAccountNo": tx_data.get('otherAccountNo'), - "fromAcc": tx_data.get('fromAcc'), - "imageHash": tx_data.get('imageHash'), - "bankColor": tx_data.get('bankColor') - } + "transaction": get_transaction_details(tx_data) }) # If both verifications fail