from qrtr_account.models import Transaction, BankAccount, Account from connection.models import Connection def get_and_save_transactions(connection, start_date=None, end_date=None): client = connection.connect() transactions = client.get_transactions(start_date=start_date, end_date=end_date) if "error" in transactions: return False for trns in transactions: Transaction.objects.update_or_create( trans_id=trns.get("transaction_id"), defaults={"authorized_date": trns.get("authorized_date"), "trans_id": trns.get("transaction_id"), "details": trns, "bank": BankAccount.objects.get(acc_id=trns.get("account_id")), "name": trns.get("name")}) return True def pull_transactions(account_ids=[], exclude_ids=[], start_date=None, end_date=None): if account_ids: accounts = Account.objects.filter(pk__in=account_ids).exclude(pk__in=exclude_ids) else: accounts = Account.objects.exclude(pk__in=exclude_ids) for account in accounts: connections = account.connection_set.all() for connection in connections: get_and_save_transactions(connection, start_date=start_date, end_date=end_date)