General code clean up. Work on event tracking related

This commit is contained in:
Scott Idem
2022-02-15 13:25:19 -05:00
parent b3cbfcfb9d
commit 003ffb4adf
8 changed files with 155 additions and 23 deletions

View File

@@ -11,6 +11,106 @@ from app.models.common_field_schema import default_num_bytes
from app.models.event_exhibit_tracking_models import Event_Exhibit_Tracking_Base
# ### BEGIN ### API Event Exhibit Tracking Methods ### create_event_exhibit_tracking_obj() ###
# Updated 2022-02-15
@logger_reset
def create_event_exhibit_tracking_obj(
exhibit_id: int|str,
event_exhibit_tracking_dict_obj: Event_Exhibit_Tracking_Base,
event_badge_id: int = None,
event_person_id: int = None,
create_sub_obj: bool = False,
fail_any: bool = False, # Fail if any thing goes wrong for sub objects
log_lvl: int = logging.WARNING, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
) -> int|bool:
log.setLevel(log_lvl)
# ### SECTION ### Secondary data validation
log.info('Create dictionary or Pydantic object')
log.debug(type(event_exhibit_tracking_dict_obj))
if isinstance(event_exhibit_tracking_dict_obj, dict):
event_exhibit_tracking_dict = event_exhibit_tracking_dict_obj
event_exhibit_tracking_dict['event_id'] = event_id
event_exhibit_tracking_dict['event_badge_id'] = event_badge_id
event_exhibit_tracking_dict['event_person_id'] = event_person_id
try:
event_exhibit_tracking_obj = Event_Exhibit_Tracking_Base(**event_exhibit_tracking_dict)
except ValidationError as e:
log.error(e.json())
return False
else:
event_exhibit_tracking_obj = event_exhibit_tracking_dict_obj
event_exhibit_tracking_obj.event_id = event_id
event_exhibit_tracking_obj.event_badge_id = event_badge_id
event_exhibit_tracking_obj.event_person_id = event_person_id
log.debug(event_exhibit_tracking_obj)
event_exhibit_tracking_dict = event_exhibit_tracking_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_badge', 'event_badge_id_random', 'event_person', 'event_person_id_random', 'created_on', 'updated_on'})
# ### SECTION ### Process data
if event_exhibit_tracking_dict_in_result := sql_insert(
data = event_exhibit_tracking_dict,
table_name = 'event_exhibit_tracking',
rm_id_random = True,
id_random_length = default_num_bytes
): pass
else:
log.warning(f'Event Exhibit Tracking not created.')
return False
log.debug(event_exhibit_tracking_dict_in_result)
event_exhibit_tracking_id = event_exhibit_tracking_dict_in_result
log.info(f'Returning the new Event Exhibit Tracking ID: {event_exhibit_tracking_id}')
return event_exhibit_tracking_id
# ### END ### API Event Exhibit Tracking Methods ### create_event_exhibit_tracking_obj() ###
# ### BEGIN ### API Event Exhibit Tracking Methods ### update_event_exhibit_tracking_obj() ###
# Updated 2022-02-15
@logger_reset
def update_event_exhibit_tracking_obj(
event_exhibit_tracking_id: int,
event_exhibit_tracking_dict_obj: Event_Exhibit_Tracking_Base,
log_lvl: int = logging.WARNING, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
) -> bool:
log.setLevel(log_lvl)
# ### SECTION ### Secondary data validation
log.info('Create dictionary or Pydantic object')
log.debug(type(event_exhibit_tracking_dict_obj))
if isinstance(event_exhibit_tracking_dict_obj, dict):
event_exhibit_tracking_dict = event_exhibit_tracking_dict_obj
event_exhibit_tracking_dict['id'] = event_exhibit_tracking_id
try:
event_exhibit_tracking_obj = Person_Base(**event_exhibit_tracking_dict)
except ValidationError as e:
log.error(e.json())
return False
else:
event_exhibit_tracking_obj = event_exhibit_tracking_dict_obj
event_exhibit_tracking_obj.id = event_exhibit_tracking_id
log.debug(event_exhibit_tracking_obj)
event_exhibit_tracking_dict = event_exhibit_tracking_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_badge', 'event_badge_id_random', 'event_person', 'event_person_id_random', 'created_on', 'updated_on'})
# ### SECTION ### Process data
if event_exhibit_tracking_dict_up_result := sql_update(
data = event_exhibit_tracking_dict,
table_name = 'event_exhibit_tracking',
rm_id_random = True,
): pass
else:
log.warning(f'Event Exhibit Tracking not updated.')
return False
log.debug(event_exhibit_tracking_dict_up_result)
return True
# ### END ### API Event Exhibit Tracking Methods ### update_event_exhibit_tracking_obj() ###
# ### BEGIN ### API Event Exhibit Tracking Methods ### load_event_exhibit_tracking_obj() ###
# Updated 2022-02-14
@logger_reset
@@ -59,7 +159,7 @@ def load_event_exhibit_tracking_obj(
else: event_exhibit_tracking_obj.event_exhibit = None
if inc_event_person:
log.info('Need to include Event Person data...')
log.info('Need to include Event Exhibit data...')
event_person_id = event_exhibit_tracking_rec.get('event_person_id', None)
log.debug(event_person_id)
from app.methods.event_person_methods import load_event_person_obj