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( def write_parsed_data_to_account_records(
file: str, data_dict: dict, collection_name: str, mongo_provider file: str, data_dict: dict, collection_name: str, mongo_provider
): ):
db_session = AccountRecords.new_session() with AccountRecords.new_session() as db_session:
data_dict["bank_balance"] = data_dict.pop("balance") data_dict["bank_balance"] = data_dict.pop("balance")
data_dict["import_file_name"] = collection_name data_dict["import_file_name"] = collection_name
data_dict = BankReceive(**data_dict).model_dump() data_dict = BankReceive(**data_dict).model_dump()
bank_date = arrow.get(str(data_dict["bank_date"])) bank_date = arrow.get(str(data_dict["bank_date"]))
data_dict["bank_date_w"] = bank_date.weekday() data_dict["bank_date_w"] = bank_date.weekday()
data_dict["bank_date_m"] = bank_date.month data_dict["bank_date_m"] = bank_date.month
data_dict["bank_date_d"] = bank_date.day data_dict["bank_date_d"] = bank_date.day
data_dict["bank_date_y"] = bank_date.year data_dict["bank_date_y"] = bank_date.year
data_dict["bank_date"] = str(bank_date) data_dict["bank_date"] = str(bank_date)
if build_iban := BuildIbans.filter_by_one( if build_iban := BuildIbans.filter_by_one(
iban=data_dict["iban"], db=db_session iban=data_dict["iban"], db=db_session
).data: ).data:
data_dict.update( data_dict.update(
{ {
"build_id": build_iban.build_id, "build_id": build_iban.build_id,
"build_uu_id": build_iban.build_uu_id, "build_uu_id": build_iban.build_uu_id,
} }
) )
if found_record := AccountRecords.filter_one( if found_record := AccountRecords.filter_one(
AccountRecords.bank_date == data_dict["bank_date"], AccountRecords.bank_date == data_dict["bank_date"],
AccountRecords.iban == data_dict["iban"], AccountRecords.iban == data_dict["iban"],
AccountRecords.bank_reference_code == data_dict["bank_reference_code"], AccountRecords.bank_reference_code == data_dict["bank_reference_code"],
AccountRecords.bank_balance == data_dict["bank_balance"], AccountRecords.bank_balance == data_dict["bank_balance"],
db=db_session, db=db_session,
).data: ).data:
print("already @database record", found_record.id) print("already @database record", found_record.id)
else: else:
new_account_record = AccountRecords.find_or_create(db=db_session, **data_dict) new_account_record = AccountRecords.find_or_create(db=db_session, **data_dict)
new_account_record.is_confirmed = True new_account_record.is_confirmed = True
new_account_record.save(db=db_session) new_account_record.save(db=db_session)
mongo_provider.update_one( mongo_provider.update_one(
filter_query={"filename": file}, filter_query={"filename": file},
update_data={"$set": {"stage": "written"}}, update_data={"$set": {"stage": "written"}},
) )
if __name__ == "__main__": if __name__ == "__main__":

View File

@ -24,11 +24,9 @@ class BaseAlchemyModel:
__abstract__ = True __abstract__ = True
@classmethod @classmethod
def new_session(cls) -> Session: def new_session(cls):
"""Get database session.""" """Get database session."""
return get_db()
with get_db() as session:
return session
@classmethod @classmethod
def flush(cls: Type[T], db: Session) -> T: def flush(cls: Type[T], db: Session) -> T: