From 6e0fc175d91340df567caabfb4d37e7776118e89 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Sun, 20 Oct 2024 01:10:48 +0500 Subject: [PATCH] implment fetching name from number --- api.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/api.py b/api.py index fc8766b..75785d3 100755 --- a/api.py +++ b/api.py @@ -1,21 +1,42 @@ #!/usr/bin/env python3 +import os +from dotenv import load_dotenv from flask import Flask, request, jsonify import subprocess import json from datetime import datetime, timedelta -import os -from dotenv import load_dotenv + +load_dotenv() # This will load environment variables from a .env file if it exists app = Flask(__name__) +def fetch_account_name(account_no): + try: + result = subprocess.run(['./fetchname.sh', account_no], capture_output=True, text=True, check=True) + response = json.loads(result.stdout) + if response.get('success'): + return response.get('accountName') + except (subprocess.CalledProcessError, json.JSONDecodeError) as e: + app.logger.error(f"Error fetching account name: {str(e)}") + return None + @app.route('/verify-payment', methods=['POST']) def verify_payment(): # Get data from request data = request.json - benef_name = data.get('benefName', '').strip().lower() # Normalize input name + benef_name = data.get('benefName', '').strip().lower() abs_amount = data.get('absAmount') time_str = data.get('time') + account_no = data.get('accountNo') + + # Fetch account name if account number is provided + if account_no: + fetched_name = fetch_account_name(account_no) + if fetched_name: + benef_name = fetched_name.strip().lower() + else: + return jsonify({"success": False, "message": "Failed to fetch account name"}), 400 # Validate input if not all([benef_name, abs_amount, time_str]):