Working on event session, presentation, and presenter create and update.

This commit is contained in:
Scott Idem
2021-08-23 16:06:49 -04:00
parent bbf5d3e2bc
commit 13c2375727
8 changed files with 324 additions and 52 deletions

View File

@@ -9,8 +9,6 @@ from app.lib_general import log, logging
# from app.methods.event_file_methods import load_event_file_obj
from app.methods.event_person_methods import create_event_person_obj, load_event_person_obj, update_event_person_obj
# from app.methods.event_presentation_methods import create_event_presentation_obj, update_event_presentation_obj
# from app.methods.event_session_methods import create_event_session_obj, load_event_session_obj, update_event_session_obj
# from app.methods.person_methods import load_person_obj
# from app.methods.user_methods import load_user_obj
@@ -111,27 +109,105 @@ def load_event_presenter_obj(
# ### END ### API Event Presenter Methods ### load_event_presenter_obj() ###
# ### BEGIN ### API Event Presenter Methods ### get_event_session_id_w_event_presentation_id() ###
# Updated 2021-08-23
def get_event_session_id_w_event_presentation_id(
event_presentation_id: int|str,
) -> bool|None:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if event_presentation_id := redis_lookup_id_random(record_id_random=event_presentation_id, table_name='event_presentation'): pass
else: return False
data = {}
data['event_presentation_id'] = event_presentation_id
sql = f"""
SELECT `event_presentation`.id AS 'event_presentation_id', `event_presentation`.id_random AS 'event_presentation_id_random', `event_presentation`.event_id AS event_id, `event_presentation`.event_session_id AS event_session_id
FROM `event_presentation` AS `event_presentation`
WHERE `event_presentation`.id = :event_presentation_id
LIMIT 1;
"""
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if event_presentation_data_result := sql_select(data=data, sql=sql):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_presentation_data_result)
if event_session_id := event_presentation_data_result.get('event_session_id', None): return event_session_id
else: return False
else: return None
# ### END ### API Event Presenter Methods ### get_event_session_id_w_event_presentation_id() ###
# ### BEGIN ### API Event Presenter Methods ### create_event_presenter_obj() ###
# Updated 2021-08-21
def create_event_presenter_obj(
event_presentation_id: int|str,
event_presenter_obj_new: Event_Presenter_Base,
event_id: int|str = None, # If None then need to look up from event_session_id
event_session_id: int|str = None, # If None then need to look up from event_presentation_id
create_sub_obj: bool = False,
fail_any: bool = False, # Fail if any thing goes wrong for sub objects
) -> bool:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if event_id := event_presenter_obj_new.event_id: pass
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
else:
log.error('Event ID is required')
# from app.methods.event_presentation_methods import get_event_session_id_w_event_presentation_id
if event_session_id := get_event_session_id_w_event_presentation_id(event_presentation_id): pass
else:
log.warning(f'The event_session_id was not found using the event_presentation_id. Event Presentation ID: {event_presentation_id}')
return event_session_id # False or None
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
else:
from app.methods.event_presentation_methods import get_event_id_w_event_session_id
if event_id := get_event_id_w_event_session_id(event_session_id): pass
else:
log.warning(f'The event_id was not found using the event_session_id. Event Session ID: {event_session_id}')
return event_id # False or None
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
else: return False
# if event_presentation_id := event_presenter_obj_new.event_presentation_id: pass
# else:
# log.error('Event Presentation ID is required')
# return False
log.debug(type(event_presenter_obj_new))
if isinstance(event_presenter_obj_new, dict):
try:
event_presenter_obj_new = Event_Presenter_Base(**event_presenter_obj_new)
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_presenter_obj_new)
except ValidationError as e:
log.error(e.json())
return False
event_presenter_obj_new.event_id = event_id
event_presenter_obj_new.event_session_id = event_session_id
event_presenter_obj_new.event_presentation_id = event_presentation_id
event_presenter_obj_data = event_presenter_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'created_on', 'updated_on'})
log.debug(event_presenter_obj_data)
if event_presenter_obj_in_result := sql_insert(data=event_presenter_obj_data, table_name='event_presenter', rm_id_random=True, id_random_length=8): pass
else:
log.warning(f'Event Presenter not created.')
log.debug(event_presenter_obj_in_result)
return False
if event_session_id := event_presenter_obj_new.event_session_id: pass
else:
log.error('Event Session ID is required')
return False
event_presenter_id = event_presenter_obj_in_result
return_dict = {}
return_dict['event_presenter_id'] = None
log.info(f'The event presenter has been created. Event Presenter ID: {event_presenter_id}')
return event_presenter_id
# ### END ### API Event Presenter Methods ### create_event_presenter_obj() ###
@@ -149,6 +225,16 @@ def update_event_presenter_obj_exist(
if event_presenter_id := redis_lookup_id_random(record_id_random=event_presenter_id, table_name='event_presenter'): pass
else: return False
log.debug(type(event_presenter_obj_exist))
if isinstance(event_presenter_obj_exist, dict):
try:
event_presenter_obj_exist = Event_Presenter_Base(**event_presenter_obj_exist)
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_presenter_obj_exist)
except ValidationError as e:
log.error(e.json())
return False
# Can't update the event_presenter_id alias if the .id was never set.
# event_presenter_obj_exist.event_presenter_id = event_presenter_id
if not event_presenter_obj_exist.id:
@@ -165,12 +251,10 @@ def update_event_presenter_obj_exist(
return_dict = {}
return_dict['event_presenter_id'] = event_presenter_id
# return_dict['something_list'] = []
return False
log.info(f'The event presenter has been updated. Event Presenter ID: {event_presenter_id}')
return True
# ### END ### API Event Presenter Methods ### update_event_presenter_obj_exist() ###