From 3e1ba4cb679c7f5f92fb9e4eddc0d739877c8ecc Mon Sep 17 00:00:00 2001 From: berkay Date: Mon, 24 Mar 2025 14:28:45 +0300 Subject: [PATCH] updated email services --- BankServices/ParserService/app.py | 26 +++++------ BankServices/RoutineEmailService/app.py | 8 +--- BankServices/WriterService/app.py | 18 ++++---- docker-compose.yml | 60 ++++++++++++------------- 4 files changed, 53 insertions(+), 59 deletions(-) diff --git a/BankServices/ParserService/app.py b/BankServices/ParserService/app.py index 1c357dc..900babc 100644 --- a/BankServices/ParserService/app.py +++ b/BankServices/ParserService/app.py @@ -19,16 +19,14 @@ def collect_excel_files_from_mongo_database(mongo_provider) -> list: def update_parsed_data_to_mongo_database( - mongo_provider, collected_data_dict: dict, filename: str + mongo_provider, collected_data_dict: list[dict], filename: str ) -> None: if collected_data_dict: - payload = collected_data_dict[filename] - if payload: - mongo_provider.update_one( - filter_query={"filename": filename}, - update_data={"$set": {"parsed": payload, "stage": "parsed"}}, - ) - return + mongo_provider.update_one( + filter_query={"filename": filename}, + update_data={"$set": {"parsed": collected_data_dict, "stage": "parsed"}}, + ) + return mongo_provider.update_one( filter_query={"filename": filename}, update_data={"$set": {"parsed": None, "stage": "not found"}}, @@ -36,14 +34,14 @@ def update_parsed_data_to_mongo_database( return -def parse_excel_file(excel_frame: DataFrame, excel_name: str) -> dict: - iban, data_dict = "", {} +def parse_excel_file(excel_frame: DataFrame) -> list[dict]: + iban, data_list = "", [] for row in excel_frame.itertuples(): if "IBAN" in str(row[3]).upper(): iban = str(row[5]).replace(" ", "") if not str(row[1]) == "nan" and not str(row[2]) == "nan": if len(str(row[1]).split("/")) > 2: - data_dict[excel_name] = dict( + data_list.append(dict( iban=str(iban), bank_date=arrow.get( datetime.datetime.strptime(str(row[1]), "%d/%m/%Y-%H:%M:%S") @@ -60,8 +58,8 @@ def parse_excel_file(excel_frame: DataFrame, excel_name: str) -> dict: process_type=unidecode(str(row[8])), process_comment=unidecode(str(row[9])), bank_reference_code=str(row[15]), - ) - return data_dict + )) + return data_list def app(): @@ -83,7 +81,7 @@ def app(): excel_frame = DataFrame(read_excel(io.BytesIO(payload))) # Extract IBAN and root info from the xl file - collected_data_dict = parse_excel_file(excel_frame, filename) + collected_data_dict = parse_excel_file(excel_frame) update_parsed_data_to_mongo_database( mongo_provider=mongo_provider, collected_data_dict=collected_data_dict, diff --git a/BankServices/RoutineEmailService/app.py b/BankServices/RoutineEmailService/app.py index f062a62..66ff709 100644 --- a/BankServices/RoutineEmailService/app.py +++ b/BankServices/RoutineEmailService/app.py @@ -48,15 +48,11 @@ def set_account_records_to_send_email(): account_records = ( account_records.order_by( AccountRecords.bank_date.desc(), AccountRecords.bank_reference_code.desc() - ) - .limit(3) - .all() + ).limit(3).all() ) first_record, second_record, balance_error = ( - account_records[0], - account_records[1], - False, + account_records[0], account_records[1], False ) second_balance = first_record.bank_balance - first_record.currency_value if second_balance != second_record.bank_balance: diff --git a/BankServices/WriterService/app.py b/BankServices/WriterService/app.py index 3f605c4..ea9410f 100644 --- a/BankServices/WriterService/app.py +++ b/BankServices/WriterService/app.py @@ -66,14 +66,14 @@ if __name__ == "__main__": ) results = collect_parsed_data_from_mongo_database(mongo_provider=provider) for result in results: - parsed_data = result.get("parsed") - file_name = result.get("filename") - if not parsed_data: + parsed_datas, file_name = result.get("parsed"), result.get("filename") + if not parsed_datas: continue - write_parsed_data_to_account_records( - data_dict=parsed_data, - collection_name=provider.collection.name, - mongo_provider=provider, - file=file_name, - ) + for parsed_data in parsed_datas: + write_parsed_data_to_account_records( + data_dict=parsed_data, + collection_name=provider.collection.name, + mongo_provider=provider, + file=file_name, + ) time.sleep(60) diff --git a/docker-compose.yml b/docker-compose.yml index e18be1f..e4ec68b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -51,29 +51,29 @@ services: # volumes: # - wag_postgres_commercial_data:/bitnami/postgresql -# email_service: -# container_name: email_service -# build: -# context: . -# dockerfile: BankServices/EmailService/Dockerfile -# networks: -# - network_store_services -# -# parser_service: -# container_name: parser_service -# build: -# context: . -# dockerfile: BankServices/ParserService/Dockerfile -# networks: -# - network_store_services -# -# writer_service: -# container_name: writer_service -# build: -# context: . -# dockerfile: BankServices/WriterService/Dockerfile -# networks: -# - network_store_services + email_service: + container_name: email_service + build: + context: . + dockerfile: BankServices/EmailService/Dockerfile + networks: + - network_store_services + + parser_service: + container_name: parser_service + build: + context: . + dockerfile: BankServices/ParserService/Dockerfile + networks: + - network_store_services + + writer_service: + container_name: writer_service + build: + context: . + dockerfile: BankServices/WriterService/Dockerfile + networks: + - network_store_services routine_email_service: container_name: routine_email_service @@ -83,13 +83,13 @@ services: networks: - network_store_services -# sender_service: -# container_name: sender_service -# build: -# context: . -# dockerfile: BankServices/SenderService/Dockerfile -# networks: -# - network_store_services + sender_service: + container_name: sender_service + build: + context: . + dockerfile: BankServices/SenderService/Dockerfile + networks: + - network_store_services # test_server: # container_name: test_server