qrtr-services/connection/tasks.py

36 lines
1.4 KiB
Python

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)