From f3f53e73b4e01d34a8ee3d5f9584ef46c1906896 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 19 Aug 2022 17:46:19 -0400 Subject: [PATCH] Work on event files and related --- app/db_sql.py | 1 + app/main.py | 2 +- app/methods/event_file_methods.py | 68 +++++++-- app/methods/hosted_file_methods.py | 2 +- app/models/event_file_models.py | 9 +- app/routers/api_crud.py | 4 +- app/routers/event_file.py | 213 +++++++++++++++++++++++++++-- app/routers/event_presenter.py | 4 +- app/routers/hosted_file.py | 4 + 9 files changed, 282 insertions(+), 25 deletions(-) diff --git a/app/db_sql.py b/app/db_sql.py index 32ec3e3..d59a627 100644 --- a/app/db_sql.py +++ b/app/db_sql.py @@ -760,6 +760,7 @@ def sql_delete( data: dict|None = None, log_lvl: int = logging.DEBUG, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL ) -> None|bool: + print('HERE SQL DELETE BEGIN') log.setLevel(log_lvl) if table_name and (record_id or record_id_random) and not (field_name or field_value or sql or data): diff --git a/app/main.py b/app/main.py index 020e8d5..abf33cc 100644 --- a/app/main.py +++ b/app/main.py @@ -200,7 +200,7 @@ app.include_router( ) app.include_router( event_file.router, - prefix='/event/file', + # prefix='/event/file', tags=['Event File'], ) app.include_router( diff --git a/app/methods/event_file_methods.py b/app/methods/event_file_methods.py index 43d4f49..08cc53d 100644 --- a/app/methods/event_file_methods.py +++ b/app/methods/event_file_methods.py @@ -1,12 +1,12 @@ -from __future__ import annotations import datetime, hashlib, os, pathlib, shutil, time from fastapi import File, UploadFile from typing import Dict, List, Optional, Set, Union from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator -from app.db_sql import get_id_random, redis_lookup_id_random, sql_enable_part, sql_insert, sql_limit_offset_part, sql_select, sql_update -from app.lib_general import log, logging +from app.db_sql import get_id_random, redis_lookup_id_random, sql_delete, sql_enable_part, sql_insert, sql_limit_offset_part, sql_select, sql_update +# from app.lib_general import log, logging, logger_reset +from app.log import log, logging, logger_reset from app.methods.hosted_file_methods import load_hosted_file_obj @@ -14,17 +14,24 @@ from app.models.event_file_models import Event_File_Base # ### BEGIN ### API Event File Methods ### create_event_file_obj() ### -def create_event_file_obj(event_file_obj_new:Event_File_Base): - log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL +@logger_reset +def create_event_file_obj(event_file_obj_new: Event_File_Base): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) - # event_file_obj_data = event_file_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'created_on', 'updated_on'}) - event_file_obj_data = event_file_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'saved', 'already_exists', 'copy_timer', 'created_on', 'updated_on'}) + try: + # event_file_obj_data = event_file_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'created_on', 'updated_on'}) + event_file_obj_data = event_file_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'saved', 'already_exists', 'copy_timer', 'created_on', 'updated_on'}) + except Exception as e: + log.exception(e) - if event_file_obj_in_result := sql_insert(data=event_file_obj_data, table_name='event_file', rm_id_random=True, id_random_length=8): pass + log.debug(event_file_obj_data) + + if event_file_obj_in_result := sql_insert(data=event_file_obj_data, table_name='event_file', rm_id_random=True): pass else: return False + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(event_file_obj_in_result) event_file_id = event_file_obj_in_result @@ -35,6 +42,7 @@ def create_event_file_obj(event_file_obj_new:Event_File_Base): # ### BEGIN ### API Event File Methods ### load_event_file_obj() ### +@logger_reset def load_event_file_obj( event_file_id: int|str, model_as_dict: bool = False, # This was defaulted to True 2022-03-07 @@ -51,7 +59,7 @@ def load_event_file_obj( # NOTE: What table or view should be used here??? if event_file_rec := sql_select(table_name='v_event_file_simple', record_id=event_file_id): - log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(event_file_rec) else: return False @@ -92,6 +100,7 @@ def load_event_file_obj( # ### BEGIN ### API Event File Methods ### get_event_file_rec_list() ### # Updated 2021-09-10 +@logger_reset def get_event_file_rec_list( for_type: str, # NOTE: This is not for_obj_type because the field name is actually for_type for_id: int|str, # NOTE: This is not for_obj_id because the field name is actually for_id @@ -180,6 +189,7 @@ def get_event_file_rec_list( # ### BEGIN ### API Event File Methods ### load_event_file_obj_list() ### +@logger_reset def load_event_file_obj_list( event_id: int|str|None = None, event_session_id: int|str|None = None, @@ -244,3 +254,43 @@ def load_event_file_obj_list( return event_file_result_li # ### END ### API Event Methods ### load_event_file_obj_list() ### + + +# ### BEGIN ### API Event File Methods ### handle_delete_event_file() ### +# Updated 2022-08-18 +@logger_reset +def handle_delete_event_file( + event_file_id: int|str, + + link_to_type: str = None, + link_to_id: int|str = None, + + rm_all_links: bool = False, + rm_orphan: bool = False, + ): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + # if account_id := redis_lookup_id_random(record_id_random=account_id, table_name='account'): pass + # else: return False + + if event_file_id := redis_lookup_id_random(record_id_random=event_file_id, table_name='event_file'): pass + else: return False + + # log.debug(event_file_id) + + # try: + # print('Trying to SQL DELETE!!!!') + # event_file_delete_result = sql_delete(table_name='event_file', record_id=event_file_id) + # print('SQL DELETE ran') + # log.debug(event_file_delete_result) + # except e: + # log.exception(e) + + if event_file_delete_result := sql_delete(table_name='event_file', record_id=event_file_id, log_lvl=logging.DEBUG): + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.info(f'Deleted Event File ID: {event_file_id}') + return True + else: + log.error(f'Something went wrong will trying to delete Event File ID: {event_file_id}') + return False diff --git a/app/methods/hosted_file_methods.py b/app/methods/hosted_file_methods.py index ab52b70..768d922 100644 --- a/app/methods/hosted_file_methods.py +++ b/app/methods/hosted_file_methods.py @@ -377,7 +377,7 @@ def create_hosted_file_link( # ### END ### API Hosted File Methods ### create_hosted_file_link() ### -# ### BEGIN ### API Hosted File Methods ### delete_hosted_file() ### +# ### BEGIN ### API Hosted File Methods ### handle_delete_hosted_file() ### # Updated 2022-08-09 @logger_reset def handle_delete_hosted_file( diff --git a/app/models/event_file_models.py b/app/models/event_file_models.py index d8088a2..0769d33 100644 --- a/app/models/event_file_models.py +++ b/app/models/event_file_models.py @@ -4,7 +4,8 @@ from typing import Dict, List, Optional, Set, Union from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator from app.db_sql import get_id_random, redis_lookup_id_random -from app.lib_general import log, logging +# from app.lib_general import log, logging +from app.log import log, logging, logger_reset from app.models.common_field_schema import base_fields, default_num_bytes from app.models.hosted_file_models import Hosted_File_Base @@ -16,7 +17,7 @@ class Event_File_Base(BaseModel): log.debug(locals()) id_random: Optional[str] = Field( - **base_fields['event_file_id_random'], + # **base_fields['event_file_id_random'], alias = 'event_file_id_random', ) id: Optional[int] = Field( @@ -26,7 +27,7 @@ class Event_File_Base(BaseModel): hosted_file_id_random: Optional[str] hosted_file_id: Optional[int] - # NOTE: Handeling this outside of the Pydantic model and model validation. See below as well. -STI 2021-09-10 + # NOTE: Handling this outside of the Pydantic model and model validation. See below as well. -STI 2021-09-10 for_type: Optional[str] for_id: Optional[int] # NOTE: This is reversed with for_id_random for_id_random: Optional[str] # NOTE: This is reversed with for_id @@ -49,6 +50,8 @@ class Event_File_Base(BaseModel): event_track_id: Optional[int] filename: Optional[str] + filename_no_ext: Optional[str] # Currently created with a view + filename_w_ext: Optional[str] # Currently created with a view extension: Optional[str] title: Optional[str] description: Optional[str] diff --git a/app/routers/api_crud.py b/app/routers/api_crud.py index b638412..33b68d4 100644 --- a/app/routers/api_crud.py +++ b/app/routers/api_crud.py @@ -84,7 +84,9 @@ obj_type_li['event_badge'] = {'table_name': 'event_badge', 'base_name': Event_Ba #obj_type_li['event_device'] = {'table_name': 'event_device', 'base_name': Event_Device_Base} obj_type_li['event_exhibit'] = {'table_name': 'v_event_exhibit', 'base_name': Event_Exhibit_Base} # NOTE check view name: *_detail? obj_type_li['event_exhibit_tracking'] = {'table_name': 'v_event_exhibit_tracking', 'base_name': Event_Exhibit_Tracking_Base} -obj_type_li['event_file'] = {'table_name': 'v_event_file', 'base_name': Event_File_Base} # Should this eventually be changed to event_hosted_file +# NOTE: Using v_event_file_simple instead of v_event_file because of linking with for_type and for_id versus event_id, event_session_id, event_presenter_id, etc. 2022-08-19 +# NOTE: This will not pull in linked to details like a session name, presentation time, or presenter name. +obj_type_li['event_file'] = {'table_name': 'v_event_file_simple', 'base_name': Event_File_Base} # Should this eventually be changed to event_hosted_file obj_type_li['event_location'] = {'table_name': 'v_event_location', 'base_name': Event_Location_Base} obj_type_li['event_person'] = {'table_name': 'v_event_person', 'base_name': Event_Person_Base} obj_type_li['event_person_tracking'] = {'table_name': 'v_event_person_tracking', 'base_name': Event_Person_Tracking_Base} diff --git a/app/routers/event_file.py b/app/routers/event_file.py index b12820d..0d68787 100644 --- a/app/routers/event_file.py +++ b/app/routers/event_file.py @@ -1,16 +1,18 @@ -import datetime, os, pathlib +import datetime, os, pathlib, time from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status from fastapi.responses import FileResponse from pydantic import BaseModel, EmailStr, Field from typing import Dict, List, Optional, Set, Union -from app.lib_general import log, logging, common_route_params, Common_Route_Params +from app.lib_general import common_route_params, Common_Route_Params +from app.log import log, logging, logger_reset from app.config import settings from app.db_sql import sql_insert, sql_update, sql_insert_or_update, sql_select, sql_delete, redis_lookup_id_random from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template -from app.methods.event_file_methods import create_event_file_obj, load_event_file_obj # , update_event_file_obj +from app.methods.event_file_methods import create_event_file_obj, handle_delete_event_file, load_event_file_obj # , update_event_file_obj +from app.methods.hosted_file_methods import load_hosted_file_obj, handle_delete_hosted_file from app.models.event_file_models import Event_File_Base from app.models.response_models import Resp_Body_Base, mk_resp @@ -19,7 +21,7 @@ from app.models.response_models import Resp_Body_Base, mk_resp router = APIRouter() -@router.post('', response_model=Resp_Body_Base) +@router.post('/event/file', response_model=Resp_Body_Base) async def post_event_file_obj( event_file_obj: Event_File_Base, x_account_id: str = Header(...), @@ -43,7 +45,110 @@ async def post_event_file_obj( return result -@router.patch('/{obj_id}', response_model=Resp_Body_Base) + +# ### BEGIN ### API Event File ### create_from_hosted_file() ### +# Updated 2022-08-18 +@router.post('/event/file/from_hosted_file/{hosted_file_id}', response_model=Resp_Body_Base) +async def create_from_hosted_file( + event_file_obj: Event_File_Base, + hosted_file_id: str = Query(..., min_length=11, max_length=22), + inc_hosted_file: bool = False, + return_obj: bool = True, + commons: Common_Route_Params = Depends(common_route_params), + ): + log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING + time.sleep(2.5) # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING + # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING + + if load_hosted_file_obj_result := load_hosted_file_obj( + hosted_file_id = hosted_file_id, + ): pass + else: return mk_resp(data=False, status_code=400, response=commons.response, status_message='The event session was not created. Check the field names and data types.') + + hosted_file_obj = load_hosted_file_obj_result + + + event_file_data = {} + event_file_data['hosted_file_id_random'] = hosted_file_id + + event_file_data['for_type'] = event_file_obj.for_type + # event_file_data['for_id'] = event_file_obj.for_id + event_file_data['for_id_random'] = event_file_obj.for_id_random + + # event_file_data['event_id'] = event_file_obj.event_id + event_file_data['event_id_random'] = event_file_obj.event_id_random + # event_file_data['event_session_id'] = event_file_obj.event_session_id + event_file_data['event_session_id_random'] = event_file_obj.event_session_id_random + # event_file_data['event_presentation_id'] = event_file_obj.event_presentation_id + event_file_data['event_presentation_id_random'] = event_file_obj.event_presentation_id_random + # event_file_data['event_presenter_id'] = event_file_obj.event_presenter_id + event_file_data['event_presenter_id_random'] = event_file_obj.event_presenter_id_random + # event_file_data['event_location_id'] = event_file_obj.event_location_id + event_file_data['event_location_id_random'] = event_file_obj.event_location_id_random + # event_file_data['event_track_id'] = event_file_obj.event_track_id + event_file_data['event_track_id_random'] = event_file_obj.event_track_id_random + + if event_file_obj.filename: + event_file_data['filename'] = event_file_obj.filename + else: + event_file_data['filename'] = hosted_file_obj.filename + if event_file_obj.extension: + event_file_data['extension'] = event_file_obj.extension + else: + event_file_data['extension'] = hosted_file_obj.extension + + event_file_data['internal_os'] = event_file_obj.internal_os + + # event_file_data['public_use'] = hosted_file_obj.public_use + + # event_file_data['lu_file_purpose_id'] = hosted_file_obj.lu_file_purpose_id + # event_file_data['file_purpose'] = hosted_file_obj.file_purpose + + # event_file_data['public'] = hosted_file_obj.public + # event_file_data['hide'] = hosted_file_obj.hide + event_file_data['enable'] = True # hosted_file_obj.enable + + log.debug(event_file_data) + + try: + event_file_obj = Event_File_Base(**event_file_data) + except ValidationError as e: + log.error(e.json()) + return False + log.debug(event_file_obj) + + create_event_file_obj_result = create_event_file_obj(event_file_obj_new=event_file_obj) + log.debug(create_event_file_obj_result) + + if isinstance(create_event_file_obj_result, int): + event_file_id = create_event_file_obj_result + log.info(f'New Event File created. Event File ID = {event_file_id}') + if return_obj: + if load_event_file_obj_result := load_event_file_obj( + event_file_id = event_file_id, + inc_hosted_file = inc_hosted_file, + model_as_dict = True, + ): + data = load_event_file_obj_result + else: + data = False + else: + event_file_id = event_file_id + event_file_id_random = get_id_random(record_id=event_file_id, table_name='event_file') + data = {} + data['event_file_id'] = event_file_id + data['event_file_id_random'] = event_file_id_random + log.debug(data) + return mk_resp(data=data, response=commons.response, status_message='The event file was created.') + else: + return mk_resp(data=False, status_code=400, response=commons.response, status_message='The result from trying to create an event file was unexpected.') +# ### END ### API Event File ### create_from_hosted_file() ### + + +@router.patch('/event/file/{obj_id}', response_model=Resp_Body_Base) async def patch_event_file_obj( obj_id: str = Query(..., min_length=11, max_length=22), obj: Event_File_Base = None, @@ -73,7 +178,7 @@ async def patch_event_file_obj( # ### BEGIN ### API Event File ### get_event_file_lookup() ### # Updated 2021-10-06 -@router.get('/lookup', response_model=Resp_Body_Base) +@router.get('/event/file/lookup', response_model=Resp_Body_Base) async def event_file_lookup( hosted_file_id: str = Query(..., min_length=11, max_length=22), for_type: str = Query(..., min_length=5, max_length=15), @@ -129,7 +234,7 @@ async def event_file_lookup( # ### BEGIN ### API Event File ### download_event_file() ### # Updated 2021-11-23 -@router.get('/{event_file_id}/download', response_model=Resp_Body_Base) +@router.get('/event/file/{event_file_id}/download', response_model=Resp_Body_Base) async def download_event_file( event_file_id: str = Query(..., min_length=11, max_length=22), filename: str = Query(None, min_length=4, max_length=100), @@ -181,7 +286,7 @@ async def download_event_file( # ### BEGIN ### API Event File ### get_event_file_obj() ### # Updated 2021-10-21 -@router.get('/{event_file_id}', response_model=Resp_Body_Base) +@router.get('/event/file/{event_file_id}', response_model=Resp_Body_Base) async def get_event_file_obj( event_file_id: str = Query(..., min_length=11, max_length=22), inc_hosted_file: bool = False, @@ -216,8 +321,9 @@ async def get_event_file_obj( # ### BEGIN ### API Event File ### delete_event_file_obj() ### +# NOTE: This should be replaced by v2 below!!! 2022-08-18 # Updated 2021-11-02 -@router.delete('/{event_file_id}', response_model=Resp_Body_Base) +@router.delete('/event/file/{event_file_id}', response_model=Resp_Body_Base) async def delete_event_file_obj( event_file_id: str = Query(..., min_length=11, max_length=22), hosted_file_id: str = Query(..., min_length=11, max_length=22), @@ -262,3 +368,92 @@ async def delete_event_file_obj( return mk_resp(data=True, response=commons.response) # ### END ### API Event File ### delete_event_file_obj() ### + +# ### BEGIN ### API Event File ### delete_event_file_obj_v2() ### +# Updated 2022-08-18 +@router.delete('/event/file/{event_file_id}/v2', response_model=Resp_Body_Base) +async def delete_event_file_obj_v2( + event_file_id: str = Query(..., min_length=11, max_length=22), + + delete_hosted_file: bool = False, # Not currently used + rm_orphan: bool = False, + + commons: Common_Route_Params = Depends(common_route_params), + ): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if event_file_id := redis_lookup_id_random(record_id_random=event_file_id, table_name='event_file'): pass + else: return mk_resp(data=None, status_code=404, response=commons.response) + + if event_file_obj := load_event_file_obj( + event_file_id = event_file_id, + ): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # event_file_dict = event_file_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) + log.info('Event File loaded') + log.debug(event_file_obj) + pass + else: + log.error('Something went wrong while trying to load the event file.') + return mk_resp(data=False, status_code=400, response=response) # Bad Request + + # try: + # log.debug(event_file_obj.hosted_file_id) + # except e: + # log.exception(e) + + # log.debug(event_file_obj.for_type) + # log.debug(event_file_obj.for_id) + + hosted_file_id = event_file_obj.hosted_file_id + for_type = event_file_obj.for_type + for_id = event_file_obj.for_id + link_to_type = for_type + link_to_id = for_id + + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(f'Event File ID: {event_file_id}') + if handle_delete_event_file(event_file_id=event_file_id): + if delete_hosted_file: pass + else: + return mk_resp(data=True, response=commons.response) + else: + log.error('Something went wrong while trying to delete the event file record') + return mk_resp(data=False, status_code=500, response=commons.response, status_message=f'Something went wrong while trying to delete the event file record. Event File ID: {event_file_id}') # Internal Server Error + + # ### SECTION ### Handle the deletion of records and file + if hosted_file_delete_result := handle_delete_hosted_file(account_id=commons.x_account_id, hosted_file_id=hosted_file_id, link_to_type=link_to_type, link_to_id=link_to_id, rm_orphan=rm_orphan): + return mk_resp(data=True, response=commons.response, status_message='The hosted file link was deleted. Not an orphan file.') + elif hosted_file_delete_result is None: + log.warning(f'The file and or hosted file record may have already been deleted. Hosted File ID: {hosted_file_id}') + return mk_resp(data=None, status_code=404, response=commons.response, status_message='The file and or hosted file record may have already been deleted.') # Not Found (maybe sort of...) + else: + log.error(f'Something may have gone wrong while trying to delete the hosted file from the server or the hosted_file record.') + return mk_resp(data=False, status_code=400, response=commons.response, status_message='Something may have gone wrong while trying to delete the hosted file from the server or the hosted_file record.') # Bad Request + + # if event_file_delete_result := sql_delete(table_name='event_file', record_id=event_file_id): + # log.info(f'Deleted Event File ID: {event_file_id}') + # else: return mk_resp(data=False, status_code=500, response=commons.response) # Internal Server Error + + + # return mk_resp(data=True, response=commons.response) + + # sql = f""" + # DELETE FROM hosted_file_link + # WHERE hosted_file_id = :hosted_file_id + # AND link_to_type = :for_type + # AND link_to_id = :for_id + # """ + # hosted_file_link_data = {} + # hosted_file_link_data['hosted_file_id'] = hosted_file_id + # hosted_file_link_data['for_type'] = for_type + # hosted_file_link_data['for_id'] = for_id + # log.debug(hosted_file_link_data) + + # if event_file_delete_result := sql_delete(sql=sql, data=hosted_file_link_data): + # log.info(f'Deleted Hosted File Link. Hosted File ID: {hosted_file_id}, Link To Type: {for_type}, Link To ID: {for_id}') + # else: return mk_resp(data=False, status_code=500, response=commons.response) # Internal Server Error + + # return mk_resp(data=True, response=commons.response) +# ### END ### API Event File ### delete_event_file_obj_v2() ### \ No newline at end of file diff --git a/app/routers/event_presenter.py b/app/routers/event_presenter.py index 827a321..654c82c 100644 --- a/app/routers/event_presenter.py +++ b/app/routers/event_presenter.py @@ -1,4 +1,4 @@ -import datetime +import datetime, time from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status from pydantic import BaseModel, EmailStr, Field from typing import Dict, List, Optional, Set, Union @@ -55,6 +55,8 @@ async def patch_event_presenter_obj( log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) + time.sleep(2.5) + obj_type = 'event_presenter' obj_data_dict = obj.dict(by_alias=False, exclude_unset=True) obj_data_dict['id'] = redis_lookup_id_random(record_id_random=obj_id, table_name=obj_type) diff --git a/app/routers/hosted_file.py b/app/routers/hosted_file.py index 6929194..765a92a 100644 --- a/app/routers/hosted_file.py +++ b/app/routers/hosted_file.py @@ -207,6 +207,10 @@ async def upload_files( log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) + # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING + time.sleep(2.5) # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING + # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING + account_id_random = account_id # This is for the account random str ID if account_id := redis_lookup_id_random(record_id_random=account_id, table_name='account'): pass else: