corrected commit error
This commit was merged in pull request #37.
This commit is contained in:
+26
-22
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user