added a new penal charge endpoint

This commit was merged in pull request #63.
This commit is contained in:
Chinenye Nmoh
2026-01-22 22:41:06 +01:00
parent f048dd99ba
commit 03c12fd9b5
5 changed files with 68 additions and 3 deletions
+40 -1
View File
@@ -440,7 +440,46 @@ def report():
except Exception as e:
logger.error(f"Error generating or sending report: {e}")
return ResponseHelper.error("Failed to send report", status_code=500, error=str(e))
@autocall_bp.route("/process-penal-charges", methods=["GET"])
def process_penal_charges():
try:
OVERDUE_GRACE_PERIOD_DAYS = settings.OVERDUE_GRACE_PERIOD_DAYS
overdue_loans = (
LoanRepaymentScheduleService
.get_overdue_repayment_schedule_with_grace_period(OVERDUE_GRACE_PERIOD_DAYS)
)
logger.info(f"Found {len(overdue_loans)} overdue loans.")
if not overdue_loans:
return ResponseHelper.success(
message="No overdue loans found",
status_code=200
)
processed_loans = []
for loan in overdue_loans:
# TODO: apply penal charge logic here
# PenalChargeService.apply_penal_charge(loan)
processed_loans.append(loan.to_dict())
return ResponseHelper.success(
message="Penal Charges Processed Successfully",
status_code=200,
data=processed_loans
)
except Exception as e:
logger.exception(f"Error processing penal charges: {e}")
return ResponseHelper.error(
"Failed to process penal charges",
status_code=500,
error=str(e)
)
@autocall_bp.route("/overdue-loans", methods=["GET"])
def overdue_loans():