From 54a084d2cbac986bb4fccd3403c4f2c5ab0e9023 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 25 Nov 2021 12:54:41 -0500 Subject: [PATCH] Work on temporary hosted files --- app/lib_general.py | 12 +++++++++--- app/models/response_models.py | 2 ++ app/routers/hosted_file.py | 2 +- app/routers/order_line.py | 20 ++++++-------------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/lib_general.py b/app/lib_general.py index 04b6aaf..773d172 100644 --- a/app/lib_general.py +++ b/app/lib_general.py @@ -122,8 +122,8 @@ def create_export_file( subdir_path: str, filename: str, export_type: str = 'CSV', # CSV, Excel - ) -> bool: - log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + ) -> bool|str: + log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) hosted_tmp_path = settings.PATH_HOSTED_TMP_ROOT @@ -146,14 +146,20 @@ def create_export_file( if export_type == 'CSV': log.info('Saving dataframe to CSV file') full_dest_path = file_dest_w_subdir+'.csv' + filename_w_ext = filename+'.csv' + tmp_file_path = os.path.join(subdir_path,filename_w_ext) data_dataframe.to_csv(full_dest_path, columns=column_name_li, index=False) elif export_type == 'Excel': log.info('Saving dataframe to Excel file') full_dest_path = file_dest_w_subdir+'.xlsx' + filename_w_ext = filename+'.xlsx' + tmp_file_path = os.path.join(subdir_path,filename_w_ext) data_dataframe.to_excel(full_dest_path, columns=column_name_li, index=False) # sheet_name='Sheet_name_1' except: log.exception('Something went wrong while trying to save the export file.') return False - return True + log.info(f'Temp File Path: {tmp_file_path}') + + return tmp_file_path # True # ### END ### API Lib General ### create_export() ### diff --git a/app/models/response_models.py b/app/models/response_models.py index 533f064..6ffa24e 100644 --- a/app/models/response_models.py +++ b/app/models/response_models.py @@ -33,6 +33,7 @@ class Resp_Body_Base(BaseModel): # Update 2021-08-23 def mk_resp( data: None|bool|dict|list, + tmp_file_path: None|str = None, dict_to_json: bool = False, status_code: int = 200, status_message: str = '', @@ -71,6 +72,7 @@ def mk_resp( resp_body['meta']['status_message'] = settings.HTTP_STATUS_LI[status_code]['message'] resp_body['meta']['status_name'] = settings.HTTP_STATUS_LI[status_code]['name'] resp_body['meta']['success'] = success + resp_body['meta']['tmp_file_path'] = tmp_file_path if isinstance(data, bool): resp_body['meta']['data_type'] = 'bool' diff --git a/app/routers/hosted_file.py b/app/routers/hosted_file.py index e1ad048..b5bf40d 100644 --- a/app/routers/hosted_file.py +++ b/app/routers/hosted_file.py @@ -433,7 +433,7 @@ async def get_hosted_file_obj( # ### BEGIN ### API Hosted File ### download_tmp() ### # Updated 2021-11-23 -@router.get('/download/{filename}', response_model=Resp_Body_Base) +@router.get('/download/tmp/{filename}', response_model=Resp_Body_Base) async def download_tmp( filename: str = Query(..., min_length=4, max_length=100), # x_account_id: str = Header(...), diff --git a/app/routers/order_line.py b/app/routers/order_line.py index eb87d44..60482b3 100644 --- a/app/routers/order_line.py +++ b/app/routers/order_line.py @@ -99,19 +99,11 @@ async def get_obj_id_order_line_list( current_datetime_utc = datetime.datetime.utcnow() current_datetime_utc = current_datetime_utc.strftime(datetime_format) filename = f'order_line_list_{current_datetime_utc}' - create_export_file(data_dict_list=data_dict_list_for_export, subdir_path='order_line', filename=filename, export_type='Excel') + if result := create_export_file(data_dict_list=data_dict_list_for_export, subdir_path='order_line', filename=filename, export_type='Excel'): + tmp_file_path = result + else: + log.error('Something went wrong while creating or saving the export file') + tmp_file_path = result - # print(response_data) - - # full_file_path = 'admin/temp/export_test_1.csv' - # full_file_path_xlsx = 'admin/temp/export_test_1.xlsx' - # keys = response_data[0].keys() - # print(keys) - - # order_line_obj_dataframe = pandas.DataFrame(response_data) - # print(order_line_obj_dataframe) - # order_line_obj_dataframe.to_csv(full_file_path, columns=keys, index=False) - # order_line_obj_dataframe.to_excel(full_file_path_xlsx, columns=keys, index=False) # sheet_name='Sheet_name_1' - - return mk_resp(data=response_data) + return mk_resp(data=response_data, tmp_file_path=tmp_file_path) # ### END ### API Order Line ### get_obj_id_order_line_list() ###