Working on event session, presentation, and presenter create and update.
This commit is contained in:
@@ -139,29 +139,128 @@ def load_event_presentation_obj(
|
||||
return False
|
||||
|
||||
return event_presentation_obj
|
||||
# ### END ### API Event Presentation Methods ### load_event_presentation_obj() ###
|
||||
|
||||
|
||||
# ### BEGIN ### API Event Presentation Methods ### get_event_id_w_event_session_id() ###
|
||||
# Updated 2021-08-23
|
||||
def get_event_id_w_event_session_id(
|
||||
event_session_id: int|str,
|
||||
) -> bool|None:
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
||||
else: return False
|
||||
|
||||
data = {}
|
||||
data['event_session_id'] = event_session_id
|
||||
|
||||
sql = f"""
|
||||
SELECT `event_session`.id AS 'event_session_id', `event_session`.id_random AS 'event_session_id_random', `event_session`.event_id AS event_id
|
||||
FROM `event_session` AS `event_session`
|
||||
WHERE `event_session`.id = :event_session_id
|
||||
LIMIT 1;
|
||||
"""
|
||||
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
if event_session_data_result := sql_select(data=data, sql=sql):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(event_session_data_result)
|
||||
if event_id := event_session_data_result.get('event_id', None): return event_id
|
||||
else: return False
|
||||
else: return None
|
||||
# ### END ### API Event Presentation Methods ### get_event_id_w_event_session_id() ###
|
||||
|
||||
|
||||
# ### BEGIN ### API Event Presentation Methods ### create_event_presentation_obj() ###
|
||||
# Updated 2021-08-21
|
||||
def create_event_presentation_obj(
|
||||
event_session_id: int|str,
|
||||
event_presentation_obj_new: Event_Presentation_Base,
|
||||
event_id: int|str = None, # If None then need to look up from event_session_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.debug(locals())
|
||||
|
||||
if event_id := event_presentation_obj_new.event_id: pass
|
||||
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
|
||||
else:
|
||||
log.error('Event ID is required')
|
||||
# from app.methods.event_session_methods import get_event_id_w_event_session_id
|
||||
if event_id := get_event_id_w_event_session_id(event_session_id): pass
|
||||
else: 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_id := event_presentation_obj_new.event_id: pass
|
||||
# else:
|
||||
# log.error('Event ID is required')
|
||||
# return False
|
||||
|
||||
# if event_session_id := event_presentation_obj_new.event_session_id: pass
|
||||
# else:
|
||||
# log.error('Event Session ID is required')
|
||||
# return False
|
||||
|
||||
log.debug(type(event_presentation_obj_new))
|
||||
if isinstance(event_presentation_obj_new, dict):
|
||||
try:
|
||||
event_presentation_obj_new = Event_Presentation_Base(**event_presentation_obj_new)
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(event_presentation_obj_new)
|
||||
except ValidationError as e:
|
||||
log.error(e.json())
|
||||
return False
|
||||
|
||||
event_presentation_obj_new.event_id = event_id
|
||||
event_presentation_obj_new.event_session_id = event_session_id
|
||||
|
||||
event_presentation_obj_data = event_presentation_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'})
|
||||
log.debug(event_presentation_obj_data)
|
||||
|
||||
if event_presentation_obj_in_result := sql_insert(data=event_presentation_obj_data, table_name='event_presentation', rm_id_random=True, id_random_length=8): pass
|
||||
else:
|
||||
log.warning(f'Event Presentation not created.')
|
||||
log.debug(event_presentation_obj_in_result)
|
||||
return False
|
||||
|
||||
if event_session_id := event_presentation_obj_new.event_session_id: pass
|
||||
event_presentation_id = event_presentation_obj_in_result
|
||||
|
||||
return_dict = {}
|
||||
return_dict['event_presentation_id'] = None
|
||||
return_dict['event_presenter_list'] = []
|
||||
|
||||
if event_presentation_obj_new.event_presenter_list and isinstance(event_presentation_obj_new.event_presenter_list, list):
|
||||
for event_presenter_obj_new in event_presentation_obj_new.event_presenter_list:
|
||||
# NOTE: This does not account for an edge case where the presenter already exists. Possibly as part of another presentation.
|
||||
if create_event_presenter_obj_result := create_event_presenter_obj(
|
||||
event_presentation_id = event_presentation_id,
|
||||
event_presenter_obj_new = event_presenter_obj_new,
|
||||
create_sub_obj = create_sub_obj,
|
||||
fail_any = fail_any,
|
||||
):
|
||||
if isinstance(create_event_presenter_obj_result, int):
|
||||
event_presenter_id = create_event_presenter_obj_result
|
||||
log.info(f'Event Presenter created. Event Presenter ID: {event_presenter_id}')
|
||||
else:
|
||||
log.warning(f'Event Presenter not created. Event Presentation ID: {event_presentation_id}')
|
||||
log.debug(create_event_presenter_obj_result)
|
||||
event_presenter_id = None
|
||||
if fail_any: return False
|
||||
else:
|
||||
log.warning(f'Event Presenter not created. Event Presentation ID: {event_presentation_id}')
|
||||
log.debug(create_event_presenter_obj_result)
|
||||
event_presenter_id = None
|
||||
if fail_any: return False
|
||||
return_dict['event_presenter_list'].append(event_presenter_id)
|
||||
else:
|
||||
log.error('Event Session ID is required')
|
||||
return False
|
||||
log.info('Event presenter list not found')
|
||||
pass
|
||||
|
||||
log.info(f'The event presentation has been created. Event Presentation ID: {event_presentation_id}')
|
||||
return event_presentation_id
|
||||
# ### END ### API Event Presentation Methods ### create_event_presentation_obj() ###
|
||||
|
||||
|
||||
@@ -173,12 +272,22 @@ def update_event_presentation_obj_exist(
|
||||
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_presentation_id := redis_lookup_id_random(record_id_random=event_presentation_id, table_name='event_presentation'): pass
|
||||
else: return False
|
||||
|
||||
log.debug(type(event_presentation_obj_exist))
|
||||
if isinstance(event_presentation_obj_exist, dict):
|
||||
try:
|
||||
event_presentation_obj_exist = Event_Presentation_Base(**event_presentation_obj_exist)
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(event_presentation_obj_exist)
|
||||
except ValidationError as e:
|
||||
log.error(e.json())
|
||||
return False
|
||||
|
||||
# Can't update the event_presentation_id alias if the .id was never set.
|
||||
# event_presentation_obj_exist.event_presentation_id = event_presentation_id
|
||||
if not event_presentation_obj_exist.id:
|
||||
@@ -197,10 +306,64 @@ def update_event_presentation_obj_exist(
|
||||
return_dict['event_presentation_id'] = event_presentation_id
|
||||
return_dict['event_presenter_list'] = []
|
||||
|
||||
if event_presentation_obj_exist.event_presenter_list and isinstance(event_presentation_obj_exist.event_presenter_list, list):
|
||||
for event_presenter_obj_unknown in event_presentation_obj_exist.event_presenter_list:
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(event_presenter_obj_unknown)
|
||||
if event_presenter_id := event_presenter_obj_unknown.get('event_presenter_id_random', None):
|
||||
if update_event_presenter_obj_result := update_event_presenter_obj_exist(
|
||||
event_presenter_id = event_presenter_id,
|
||||
event_presenter_obj_exist = event_presenter_obj_unknown,
|
||||
create_sub_obj = create_sub_obj,
|
||||
fail_any = fail_any,
|
||||
):
|
||||
event_presenter_id = update_event_presenter_obj_result
|
||||
log.info(f'Event Presenter updated. Event Presenter ID: {event_presenter_id}')
|
||||
else:
|
||||
log.warning(f'Event Presenter not updated. Event Presentation ID: {event_presentation_id}')
|
||||
log.debug(update_event_presenter_obj_result)
|
||||
event_presenter_id = None
|
||||
if fail_any: return False
|
||||
|
||||
if isinstance(update_event_presenter_obj_result, int):
|
||||
event_presenter_id = update_event_presenter_obj_result
|
||||
log.info(f'Event Presenter updated. Event Presenter ID: {event_presenter_id}')
|
||||
else:
|
||||
log.warning(f'Event Presenter not updated. Event Presentation ID: {event_presentation_id}')
|
||||
log.debug(update_event_presenter_obj_result)
|
||||
event_presenter_id = None
|
||||
if fail_any: return False
|
||||
else:
|
||||
log.info(f'No Event Presenter ID found.')
|
||||
if create_event_presenter_obj_result := create_event_presenter_obj(
|
||||
event_presentation_id = event_presentation_id,
|
||||
event_presenter_obj_new = event_presenter_obj_unknown,
|
||||
create_sub_obj = create_sub_obj,
|
||||
fail_any = fail_any,
|
||||
):
|
||||
if isinstance(create_event_presenter_obj_result, int):
|
||||
event_presenter_id = create_event_presenter_obj_result
|
||||
log.info(f'Event Presenter created. Event Presenter ID: {event_presenter_id}')
|
||||
else:
|
||||
log.warning(f'Event Presenter not created. Event Presentation ID: {event_presentation_id}')
|
||||
log.debug(create_event_presenter_obj_result)
|
||||
event_presenter_id = None
|
||||
if fail_any: return False
|
||||
else:
|
||||
log.warning(f'Event Presenter not created. Event Presentation ID: {event_presentation_id}')
|
||||
log.debug(create_event_presenter_obj_result)
|
||||
event_presenter_id = None
|
||||
if fail_any: return False
|
||||
return_dict['event_presenter_list'].append(event_presenter_id)
|
||||
else:
|
||||
log.info('Event presenter list not found or not in a list.')
|
||||
pass
|
||||
|
||||
|
||||
return False
|
||||
# log.info(f'Returning the updated event_presentation_id: {event_presentation_id}')
|
||||
# return event_presentation_id
|
||||
log.info(f'The event presentation has been updated. Event Presentation ID: {event_presentation_id}')
|
||||
return True
|
||||
# ### END ### API Event Presentation Methods ### update_event_presentation_obj_exist() ###
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user