updated email services

This commit is contained in:
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,