This commit was merged in pull request #16.
This commit is contained in:
Azeez Muibi
2025-05-03 12:15:45 +01:00
parent 7ec9eada4d
commit 905c43add6
5 changed files with 18 additions and 5 deletions
+1
View File
@@ -167,6 +167,7 @@ def get_all_loan_charges():
# Extract query parameters for filtering # Extract query parameters for filtering
filters = { filters = {
'loan_id': request.args.get('loan_id'), 'loan_id': request.args.get('loan_id'),
'transaction_id': request.args.get('transaction_id'),
'code': request.args.get('code'), 'code': request.args.get('code'),
'start_date': request.args.get('start_date'), 'start_date': request.args.get('start_date'),
'end_date': request.args.get('end_date'), 'end_date': request.args.get('end_date'),
+2
View File
@@ -28,6 +28,7 @@ class LoanChargeService:
# Extract filters # Extract filters
loan_id = filters.get('loan_id') loan_id = filters.get('loan_id')
transaction_id = filters.get('transaction_id')
code = filters.get('code') code = filters.get('code')
start_date = filters.get('start_date') start_date = filters.get('start_date')
end_date = filters.get('end_date') end_date = filters.get('end_date')
@@ -57,6 +58,7 @@ class LoanChargeService:
# Get loan charges with optional filters and pagination # Get loan charges with optional filters and pagination
loan_charges, total_count = LoanCharge.get_all_loan_charges( loan_charges, total_count = LoanCharge.get_all_loan_charges(
loan_id=loan_id, loan_id=loan_id,
transaction_id=transaction_id,
code=code, code=code,
start_date=start_date, start_date=start_date,
end_date=end_date, end_date=end_date,
+5 -1
View File
@@ -18,13 +18,14 @@ class LoanCharge(db.Model):
due_date = db.Column(db.DateTime) due_date = db.Column(db.DateTime)
@classmethod @classmethod
def get_all_loan_charges(cls, loan_id=None, code=None, start_date=None, end_date=None, def get_all_loan_charges(cls, loan_id=None, transaction_id=None, code=None, start_date=None, end_date=None,
due_before=None, due_after=None, page=1, limit=20): due_before=None, due_after=None, page=1, limit=20):
""" """
Get all loan charges with optional filtering Get all loan charges with optional filtering
Args: Args:
loan_id (int, optional): Filter by loan ID loan_id (int, optional): Filter by loan ID
transaction_id (int, optional): Filter by transaction ID
code (str, optional): Filter by charge code code (str, optional): Filter by charge code
start_date (datetime, optional): Filter by start date (created_at) start_date (datetime, optional): Filter by start date (created_at)
end_date (datetime, optional): Filter by end date (created_at) end_date (datetime, optional): Filter by end date (created_at)
@@ -42,6 +43,9 @@ class LoanCharge(db.Model):
if loan_id: if loan_id:
query = query.filter(cls.loan_id == loan_id) query = query.filter(cls.loan_id == loan_id)
if transaction_id:
query = query.filter(cls.transaction_id == transaction_id)
if code: if code:
query = query.filter(cls.code == code) query = query.filter(cls.code == code)
+10
View File
@@ -15,6 +15,16 @@
}, },
"example": 7463 "example": 7463
}, },
{
"name": "transaction_id",
"in": "query",
"description": "Filter by transaction ID",
"required": false,
"schema": {
"type": "string"
},
"example": "TRX789"
},
{ {
"name": "code", "name": "code",
"in": "query", "in": "query",
@@ -32,10 +32,6 @@
"type": "integer", "type": "integer",
"example": 0 "example": 0
}, },
"transaction_ {
"type": "integer",
"example": 0
},
"transaction_id": { "transaction_id": {
"type": "string", "type": "string",
"example": "TRX123456", "example": "TRX123456",