From a27f4333f3486dbac493a6731e8dc0e2ea041ff4 Mon Sep 17 00:00:00 2001 From: Azeez Muibi Date: Mon, 28 Apr 2025 21:48:35 +0100 Subject: [PATCH] Added transaction ID --- app/api/routes/routes.py | 1 + app/models/__init__.py | 3 ++- app/models/transaction.py | 6 +++++- app/swagger/paths/Transactions.json | 10 ++++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/api/routes/routes.py b/app/api/routes/routes.py index 9133569..767162d 100644 --- a/app/api/routes/routes.py +++ b/app/api/routes/routes.py @@ -129,6 +129,7 @@ def get_transactions(): # Extract query parameters for filtering filters = { 'account_id': request.args.get('account_id'), + 'transaction_id': request.args.get('transaction_id'), 'type': request.args.get('type'), 'channel': request.args.get('channel'), 'start_date': request.args.get('start_date'), diff --git a/app/models/__init__.py b/app/models/__init__.py index e1a7e80..f493021 100644 --- a/app/models/__init__.py +++ b/app/models/__init__.py @@ -5,5 +5,6 @@ from .transaction import Transaction from .user import User from .repayment import Repayment from .loan_charge import LoanCharge +from .loan_repayment_schedule import LoanRepaymentSchedule -__all__ = ['Customer', 'Account', 'Loan', 'Transaction', 'User', 'Repayment', 'LoanCharge'] \ No newline at end of file +__all__ = ['Customer', 'Account', 'Loan', 'Transaction', 'User', 'Repayment', 'LoanCharge', 'LoanRepaymentSchedule'] \ No newline at end of file diff --git a/app/models/transaction.py b/app/models/transaction.py index 350c06c..ab82626 100644 --- a/app/models/transaction.py +++ b/app/models/transaction.py @@ -50,12 +50,13 @@ class Transaction(db.Model): return cls.query.get(transaction_id) @classmethod - def get_all_transactions(cls, account_id=None, transaction_type=None, channel=None, start_date=None, end_date=None, page=1, limit=20): + def get_all_transactions(cls, account_id=None, transaction_id=None, transaction_type=None, channel=None, start_date=None, end_date=None, page=1, limit=20): """ Get all transactions with optional filtering Args: account_id (str, optional): Filter by account ID + transaction_id (str, optional): Filter by transaction ID transaction_type (str, optional): Filter by transaction type channel (str, optional): Filter by channel start_date (datetime, optional): Filter by start date @@ -70,6 +71,9 @@ class Transaction(db.Model): if account_id: query = query.filter(cls.account_id == account_id) + if transaction_id: + query = query.filter(cls.transaction_id == transaction_id) + if transaction_type: query = query.filter(cls.type == transaction_type) diff --git a/app/swagger/paths/Transactions.json b/app/swagger/paths/Transactions.json index 952d758..479bed5 100644 --- a/app/swagger/paths/Transactions.json +++ b/app/swagger/paths/Transactions.json @@ -15,6 +15,16 @@ }, "example": "ACC456" }, + { + "name": "transaction_id", + "in": "query", + "description": "Filter by transaction ID", + "required": false, + "schema": { + "type": "string" + }, + "example": "TRX789" + }, { "name": "type", "in": "query", -- 2.34.1