Work on event files and related
This commit is contained in:
@@ -760,6 +760,7 @@ def sql_delete(
|
|||||||
data: dict|None = None,
|
data: dict|None = None,
|
||||||
log_lvl: int = logging.DEBUG, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log_lvl: int = logging.DEBUG, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
) -> None|bool:
|
) -> None|bool:
|
||||||
|
print('HERE SQL DELETE BEGIN')
|
||||||
log.setLevel(log_lvl)
|
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):
|
if table_name and (record_id or record_id_random) and not (field_name or field_value or sql or data):
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ app.include_router(
|
|||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_file.router,
|
event_file.router,
|
||||||
prefix='/event/file',
|
# prefix='/event/file',
|
||||||
tags=['Event File'],
|
tags=['Event File'],
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
from __future__ import annotations
|
|
||||||
import datetime, hashlib, os, pathlib, shutil, time
|
import datetime, hashlib, os, pathlib, shutil, time
|
||||||
|
|
||||||
from fastapi import File, UploadFile
|
from fastapi import File, UploadFile
|
||||||
from typing import Dict, List, Optional, Set, Union
|
from typing import Dict, List, Optional, Set, Union
|
||||||
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
|
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.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
|
# 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
|
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() ###
|
# ### BEGIN ### API Event File Methods ### create_event_file_obj() ###
|
||||||
def create_event_file_obj(event_file_obj_new:Event_File_Base):
|
@logger_reset
|
||||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
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())
|
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'})
|
try:
|
||||||
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'})
|
# 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:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(event_file_obj_in_result)
|
log.debug(event_file_obj_in_result)
|
||||||
|
|
||||||
event_file_id = 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() ###
|
# ### BEGIN ### API Event File Methods ### load_event_file_obj() ###
|
||||||
|
@logger_reset
|
||||||
def load_event_file_obj(
|
def load_event_file_obj(
|
||||||
event_file_id: int|str,
|
event_file_id: int|str,
|
||||||
model_as_dict: bool = False, # This was defaulted to True 2022-03-07
|
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???
|
# 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):
|
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)
|
log.debug(event_file_rec)
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
@@ -92,6 +100,7 @@ def load_event_file_obj(
|
|||||||
|
|
||||||
# ### BEGIN ### API Event File Methods ### get_event_file_rec_list() ###
|
# ### BEGIN ### API Event File Methods ### get_event_file_rec_list() ###
|
||||||
# Updated 2021-09-10
|
# Updated 2021-09-10
|
||||||
|
@logger_reset
|
||||||
def get_event_file_rec_list(
|
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_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
|
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() ###
|
# ### BEGIN ### API Event File Methods ### load_event_file_obj_list() ###
|
||||||
|
@logger_reset
|
||||||
def load_event_file_obj_list(
|
def load_event_file_obj_list(
|
||||||
event_id: int|str|None = None,
|
event_id: int|str|None = None,
|
||||||
event_session_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
|
return event_file_result_li
|
||||||
# ### END ### API Event Methods ### load_event_file_obj_list() ###
|
# ### 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
|
||||||
|
|||||||
@@ -377,7 +377,7 @@ def create_hosted_file_link(
|
|||||||
# ### END ### API Hosted File Methods ### 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
|
# Updated 2022-08-09
|
||||||
@logger_reset
|
@logger_reset
|
||||||
def handle_delete_hosted_file(
|
def handle_delete_hosted_file(
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ from typing import Dict, List, Optional, Set, Union
|
|||||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||||
|
|
||||||
from app.db_sql import get_id_random, redis_lookup_id_random
|
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.common_field_schema import base_fields, default_num_bytes
|
||||||
from app.models.hosted_file_models import Hosted_File_Base
|
from app.models.hosted_file_models import Hosted_File_Base
|
||||||
@@ -16,7 +17,7 @@ class Event_File_Base(BaseModel):
|
|||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
id_random: Optional[str] = Field(
|
id_random: Optional[str] = Field(
|
||||||
**base_fields['event_file_id_random'],
|
# **base_fields['event_file_id_random'],
|
||||||
alias = 'event_file_id_random',
|
alias = 'event_file_id_random',
|
||||||
)
|
)
|
||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
@@ -26,7 +27,7 @@ class Event_File_Base(BaseModel):
|
|||||||
hosted_file_id_random: Optional[str]
|
hosted_file_id_random: Optional[str]
|
||||||
hosted_file_id: Optional[int]
|
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_type: Optional[str]
|
||||||
for_id: Optional[int] # NOTE: This is reversed with for_id_random
|
for_id: Optional[int] # NOTE: This is reversed with for_id_random
|
||||||
for_id_random: Optional[str] # NOTE: This is reversed with for_id
|
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]
|
event_track_id: Optional[int]
|
||||||
|
|
||||||
filename: Optional[str]
|
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]
|
extension: Optional[str]
|
||||||
title: Optional[str]
|
title: Optional[str]
|
||||||
description: Optional[str]
|
description: Optional[str]
|
||||||
|
|||||||
@@ -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_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'] = {'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_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_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'] = {'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}
|
obj_type_li['event_person_tracking'] = {'table_name': 'v_event_person_tracking', 'base_name': Event_Person_Tracking_Base}
|
||||||
|
|||||||
@@ -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 import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
|
||||||
from fastapi.responses import FileResponse
|
from fastapi.responses import FileResponse
|
||||||
from pydantic import BaseModel, EmailStr, Field
|
from pydantic import BaseModel, EmailStr, Field
|
||||||
from typing import Dict, List, Optional, Set, Union
|
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.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.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.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.event_file_models import Event_File_Base
|
||||||
from app.models.response_models import Resp_Body_Base, mk_resp
|
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 = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
@router.post('', response_model=Resp_Body_Base)
|
@router.post('/event/file', response_model=Resp_Body_Base)
|
||||||
async def post_event_file_obj(
|
async def post_event_file_obj(
|
||||||
event_file_obj: Event_File_Base,
|
event_file_obj: Event_File_Base,
|
||||||
x_account_id: str = Header(...),
|
x_account_id: str = Header(...),
|
||||||
@@ -43,7 +45,110 @@ async def post_event_file_obj(
|
|||||||
return result
|
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(
|
async def patch_event_file_obj(
|
||||||
obj_id: str = Query(..., min_length=11, max_length=22),
|
obj_id: str = Query(..., min_length=11, max_length=22),
|
||||||
obj: Event_File_Base = None,
|
obj: Event_File_Base = None,
|
||||||
@@ -73,7 +178,7 @@ async def patch_event_file_obj(
|
|||||||
|
|
||||||
# ### BEGIN ### API Event File ### get_event_file_lookup() ###
|
# ### BEGIN ### API Event File ### get_event_file_lookup() ###
|
||||||
# Updated 2021-10-06
|
# 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(
|
async def event_file_lookup(
|
||||||
hosted_file_id: str = Query(..., min_length=11, max_length=22),
|
hosted_file_id: str = Query(..., min_length=11, max_length=22),
|
||||||
for_type: str = Query(..., min_length=5, max_length=15),
|
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() ###
|
# ### BEGIN ### API Event File ### download_event_file() ###
|
||||||
# Updated 2021-11-23
|
# 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(
|
async def download_event_file(
|
||||||
event_file_id: str = Query(..., min_length=11, max_length=22),
|
event_file_id: str = Query(..., min_length=11, max_length=22),
|
||||||
filename: str = Query(None, min_length=4, max_length=100),
|
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() ###
|
# ### BEGIN ### API Event File ### get_event_file_obj() ###
|
||||||
# Updated 2021-10-21
|
# 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(
|
async def get_event_file_obj(
|
||||||
event_file_id: str = Query(..., min_length=11, max_length=22),
|
event_file_id: str = Query(..., min_length=11, max_length=22),
|
||||||
inc_hosted_file: bool = False,
|
inc_hosted_file: bool = False,
|
||||||
@@ -216,8 +321,9 @@ async def get_event_file_obj(
|
|||||||
|
|
||||||
|
|
||||||
# ### BEGIN ### API Event File ### delete_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
|
# 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(
|
async def delete_event_file_obj(
|
||||||
event_file_id: str = Query(..., min_length=11, max_length=22),
|
event_file_id: str = Query(..., min_length=11, max_length=22),
|
||||||
hosted_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)
|
return mk_resp(data=True, response=commons.response)
|
||||||
# ### END ### API Event File ### delete_event_file_obj() ###
|
# ### 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() ###
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import datetime
|
import datetime, time
|
||||||
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
|
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
|
||||||
from pydantic import BaseModel, EmailStr, Field
|
from pydantic import BaseModel, EmailStr, Field
|
||||||
from typing import Dict, List, Optional, Set, Union
|
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.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
|
time.sleep(2.5)
|
||||||
|
|
||||||
obj_type = 'event_presenter'
|
obj_type = 'event_presenter'
|
||||||
obj_data_dict = obj.dict(by_alias=False, exclude_unset=True)
|
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)
|
obj_data_dict['id'] = redis_lookup_id_random(record_id_random=obj_id, table_name=obj_type)
|
||||||
|
|||||||
@@ -207,6 +207,10 @@ async def upload_files(
|
|||||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
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
|
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
|
if account_id := redis_lookup_id_random(record_id_random=account_id, table_name='account'): pass
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user