From bdd7cac4be597cba3232ffc60c9e539bb13fcbd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Murta?= Date: Sun, 30 Apr 2023 00:48:03 +0100 Subject: [PATCH] Download operation moves to Loader interface to load extracted transactions to database. --- pfbudget/core/manager.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pfbudget/core/manager.py b/pfbudget/core/manager.py index 51677d7..14c1965 100644 --- a/pfbudget/core/manager.py +++ b/pfbudget/core/manager.py @@ -29,6 +29,7 @@ from pfbudget.db.model import ( from pfbudget.extract.nordigen import NordigenClient, NordigenCredentialsManager from pfbudget.extract.parsers import parse_data from pfbudget.extract.psd2 import PSD2Extractor +from pfbudget.load.database import DatabaseLoader from pfbudget.transform.categorizer import Categorizer from pfbudget.transform.nullifier import Nullifier from pfbudget.transform.tagger import Tagger @@ -80,17 +81,19 @@ class Manager: else: banks = self.database.select(Bank, Bank.nordigen) - client = Manager.nordigen_client() - extractor = PSD2Extractor(client) + extractor = PSD2Extractor(Manager.nordigen_client()) + transactions = [] for bank in banks: transactions.extend(extractor.extract(bank, params[0], params[1])) # dry-run - if not params[2]: - self.database.insert(sorted(transactions)) - else: + if params[2]: print(sorted(transactions)) + return + + loader = DatabaseLoader(self.database) + loader.load(sorted(transactions)) case Operation.Categorize: with self.database.session as session: