session maker updated

This commit is contained in:
berkay 2025-03-25 12:53:30 +03:00
parent f3b053af78
commit a256d9d70c
2 changed files with 37 additions and 39 deletions

View File

@ -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__":

View File

@ -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: