corrected commit error

This commit was merged in pull request #37.
This commit is contained in:
Chinenye Nmoh
2025-07-08 10:49:04 +01:00
parent 39d9abf5ec
commit 23574a433a
5 changed files with 67 additions and 32 deletions
+26 -22
View File
@@ -1,5 +1,6 @@
from flask import Blueprint, request, jsonify, current_app
import requests
from app.extensions import db
from app.config import settings
from app.helpers.response_helper import ResponseHelper
from app.utils.auth import get_headers
@@ -167,6 +168,7 @@ def process_salary_list():
try:
SalaryService.update_status(pending_salary.id, "PROCESSING")
except Exception as e:
db.session.rollback()
logger.warning(f"Could not update status for salary ID {pending_salary.id}: {e}")
continue
@@ -177,6 +179,7 @@ def process_salary_list():
logger.warning(f"No loans found for customer ID: {pending_salary.customer_id}")
continue
except Exception as e:
db.session.rollback()
logger.error(f"Error fetching loans for customer ID {pending_salary.customer_id}: {e}")
continue
@@ -197,40 +200,41 @@ def process_salary_list():
logger.info(f"Creating repayment with data: {repayment_data}")
repayment = RepaymentService.create_repayment(repayment_data)
if not repayment:
logger.error(f"Repayment creation failed for loan ID {loan.id}")
if not repayment or isinstance(repayment, dict) and "error" in repayment:
db.session.rollback() # important in case create_repayment failed mid-way
logger.error(f"Repayment creation failed for loan ID {loan.id}: {repayment}")
continue
# Update loan status to START_REPAY
try:
LoanService.update_status(loan_id=loan.id, status=LoanStatus.START_REPAY)
except Exception as e:
db.session.rollback()
logger.error(f"Failed to update loan status for loan ID {loan.id}: {e}")
logger.info(f"Created repayment ID: {repayment.id}")
# Step 5: Call Simbrella
try:
simbrella_response = SimbrellaClient.collect_loan_user_salary_detect(repayment.to_dict())
if isinstance(simbrella_response, tuple):
simbrella_response, status_code = simbrella_response
logger.warning(f"Simbrella returned tuple: status={status_code}, response={simbrella_response}")
if isinstance(simbrella_response, dict):
if simbrella_response.get("status") != "success":
logger.warning(f"Simbrella failed for repayment ID {repayment.id}: {simbrella_response}")
else:
logger.warning(f"Unexpected Simbrella response: {type(simbrella_response)}")
except Exception as e:
logger.error(f"Failed to call Simbrella for repayment ID {repayment.id}: {e}")
except Exception as e:
db.session.rollback()
logger.error(f"Error creating repayment for loan ID {loan.id}: {e}")
continue
# Step 5: Call Simbrella to collect loan
try:
simbrella_response = SimbrellaClient.collect_loan_user_salary_detect(repayment.to_dict())
if isinstance(simbrella_response, tuple):
simbrella_response, status_code = simbrella_response
logger.warning(f"Simbrella returned tuple: status={status_code}, response={simbrella_response}")
if isinstance(simbrella_response, dict):
status = simbrella_response.get("status")
if status != "success":
logger.warning(f"Simbrella call failed for repayment ID {repayment.id}: {simbrella_response}")
else:
logger.warning(f"Unexpected Simbrella response type: {type(simbrella_response)}")
except Exception as e:
logger.error(f"Failed to call Simbrella for repayment ID {repayment.id}: {e}")
logger.info(f"Finished processing salary ID: {pending_salary.id}")
return ResponseHelper.success([], "Processed all pending salaries")