From 1d97304f4e688b60d6c6000ef73c286c725ec852 Mon Sep 17 00:00:00 2001 From: VivianDee <115420678+VivianDee@users.noreply.github.com> Date: Fri, 11 Apr 2025 00:14:02 +0100 Subject: [PATCH] [update]: Loan status --- app/api/services/loan_status.py | 10 +++++++--- app/models/loan.py | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/api/services/loan_status.py b/app/api/services/loan_status.py index 08d2c2a..f80b7f2 100644 --- a/app/api/services/loan_status.py +++ b/app/api/services/loan_status.py @@ -24,18 +24,22 @@ class LoanStatusService(BaseService): """ try: with db.session.begin(): + # Validate data validated_data = LoanStatusService.validate_data(data, LoanStatusSchema()) + + customer_id = validated_data.get('customerId') customer = Customer.get_customer(customer_id) transactionId = validated_data.get('transactionId') - loans = customer.loans + # Get loans + loans = [loan.to_dict() for loan in customer.loans] + - db.session.flush() - validated_data['refId'] = customer.id validated_data['refModel'] = "customer" + transaction = LoanStatusService.log_transaction(validated_data = validated_data) if not transaction: diff --git a/app/models/loan.py b/app/models/loan.py index 5f8f1fc..33256e4 100644 --- a/app/models/loan.py +++ b/app/models/loan.py @@ -99,6 +99,20 @@ class Loan(db.Model): # Update loan status and the updated_at timestamp loan.status = status + def to_dict(self): + """ + Convert the Loan object to a dictionary format for JSON serialization. + """ + return { + 'id': self.id, + 'customer_id': self.customer_id, + 'account_id': self.account_id, + 'offer_id': self.offer_id, + 'principal_amount': self.principal_amount, + 'status': self.status, + 'created_at': self.created_at.isoformat() if self.created_at else None, + 'updated_at': self.updated_at.isoformat() if self.updated_at else None + } def __repr__(self): return f'' \ No newline at end of file