diff --git a/BankServices/WriterService/app.py b/BankServices/WriterService/app.py index 7f17409..6e6e6eb 100644 --- a/BankServices/WriterService/app.py +++ b/BankServices/WriterService/app.py @@ -18,41 +18,41 @@ def collect_parsed_data_from_mongo_database(mongo_provider) -> list: def write_parsed_data_to_account_records( file: str, data_dict: dict, collection_name: str, mongo_provider ): - db_session = AccountRecords.new_session() - data_dict["bank_balance"] = data_dict.pop("balance") - data_dict["import_file_name"] = collection_name - data_dict = BankReceive(**data_dict).model_dump() - bank_date = arrow.get(str(data_dict["bank_date"])) - data_dict["bank_date_w"] = bank_date.weekday() - data_dict["bank_date_m"] = bank_date.month - data_dict["bank_date_d"] = bank_date.day - data_dict["bank_date_y"] = bank_date.year - data_dict["bank_date"] = str(bank_date) - if build_iban := BuildIbans.filter_by_one( - iban=data_dict["iban"], db=db_session - ).data: - data_dict.update( - { - "build_id": build_iban.build_id, - "build_uu_id": build_iban.build_uu_id, - } - ) - if found_record := AccountRecords.filter_one( - AccountRecords.bank_date == data_dict["bank_date"], - AccountRecords.iban == data_dict["iban"], - AccountRecords.bank_reference_code == data_dict["bank_reference_code"], - AccountRecords.bank_balance == data_dict["bank_balance"], - db=db_session, - ).data: - print("already @database record", found_record.id) - else: - new_account_record = AccountRecords.find_or_create(db=db_session, **data_dict) - new_account_record.is_confirmed = True - new_account_record.save(db=db_session) - mongo_provider.update_one( - filter_query={"filename": file}, - update_data={"$set": {"stage": "written"}}, - ) + with AccountRecords.new_session() as db_session: + data_dict["bank_balance"] = data_dict.pop("balance") + data_dict["import_file_name"] = collection_name + data_dict = BankReceive(**data_dict).model_dump() + bank_date = arrow.get(str(data_dict["bank_date"])) + data_dict["bank_date_w"] = bank_date.weekday() + data_dict["bank_date_m"] = bank_date.month + data_dict["bank_date_d"] = bank_date.day + data_dict["bank_date_y"] = bank_date.year + data_dict["bank_date"] = str(bank_date) + if build_iban := BuildIbans.filter_by_one( + iban=data_dict["iban"], db=db_session + ).data: + data_dict.update( + { + "build_id": build_iban.build_id, + "build_uu_id": build_iban.build_uu_id, + } + ) + if found_record := AccountRecords.filter_one( + AccountRecords.bank_date == data_dict["bank_date"], + AccountRecords.iban == data_dict["iban"], + AccountRecords.bank_reference_code == data_dict["bank_reference_code"], + AccountRecords.bank_balance == data_dict["bank_balance"], + db=db_session, + ).data: + print("already @database record", found_record.id) + else: + new_account_record = AccountRecords.find_or_create(db=db_session, **data_dict) + new_account_record.is_confirmed = True + new_account_record.save(db=db_session) + mongo_provider.update_one( + filter_query={"filename": file}, + update_data={"$set": {"stage": "written"}}, + ) if __name__ == "__main__": diff --git a/Services/PostgresService/controllers/core_controllers.py b/Services/PostgresService/controllers/core_controllers.py index a13cbfe..e9452e3 100644 --- a/Services/PostgresService/controllers/core_controllers.py +++ b/Services/PostgresService/controllers/core_controllers.py @@ -24,11 +24,9 @@ class BaseAlchemyModel: __abstract__ = True @classmethod - def new_session(cls) -> Session: + def new_session(cls): """Get database session.""" - - with get_db() as session: - return session + return get_db() @classmethod def flush(cls: Type[T], db: Session) -> T: