updated email services

This commit is contained in:
berkay 2025-03-24 14:28:45 +03:00
parent 22876d250d
commit 3e1ba4cb67
4 changed files with 53 additions and 59 deletions

View File

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

View File

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

View File

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

View File

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