General code clean up. Work on event tracking related
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user