Work on exhibits and badges and related

This commit is contained in:
Scott Idem
2022-04-11 19:38:10 -04:00
parent 8433f07e57
commit f64efa3494
3 changed files with 72 additions and 6 deletions

View File

@@ -85,7 +85,7 @@ def update_event_exhibit_tracking_obj(
event_exhibit_tracking_dict = event_exhibit_tracking_dict_obj event_exhibit_tracking_dict = event_exhibit_tracking_dict_obj
event_exhibit_tracking_dict['id'] = event_exhibit_tracking_id event_exhibit_tracking_dict['id'] = event_exhibit_tracking_id
try: try:
event_exhibit_tracking_obj = Person_Base(**event_exhibit_tracking_dict) event_exhibit_tracking_obj = Event_Exhibit_Tracking_Base(**event_exhibit_tracking_dict)
except ValidationError as e: except ValidationError as e:
log.error(e.json()) log.error(e.json())
return False return False
@@ -94,7 +94,31 @@ def update_event_exhibit_tracking_obj(
event_exhibit_tracking_obj.id = event_exhibit_tracking_id event_exhibit_tracking_obj.id = event_exhibit_tracking_id
log.debug(event_exhibit_tracking_obj) 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_id', 'event_id_random', 'event_badge', 'event_badge_id_random', 'event_badge_informal_name', 'event_badge_given_name', 'event_badge_family_name', 'event_badge_display_name', 'event_badge_full_name', 'event_badge_affiliations', 'event_badge_email', 'event_person_informal_name', 'event_person_given_name', 'event_person_family_name', 'event_person_display_name', 'event_person_full_name', 'event_person_affiliations', 'event_person_email', 'event_exhibit_name', 'event_person', 'event_person_id_random', 'created_on', 'updated_on'}) event_exhibit_tracking_dict = event_exhibit_tracking_obj.dict(
by_alias = False,
exclude_defaults = False,
exclude_unset = True,
exclude = {
'event_id', 'event_id_random', 'event_badge', 'event_badge_id_random',
'event_badge_informal_name', 'event_badge_title_names',
'event_badge_given_name', 'event_badge_middle_name', 'event_badge_family_name',
'event_badge_display_name', 'event_badge_full_name',
'event_badge_designations', 'event_badge_professional_title', 'event_badge_affiliations',
'event_badge_email',
'event_badge_city',
'event_badge_country_subdivision_code', 'event_badge_state_province_abb', 'event_badge_state_province',
'event_badge_country_alpha_2_code', 'event_badge_country',
'event_badge_badge_type_code', 'event_badge_badge_type', 'event_badge_registration_type_code', 'event_badge_registration_type',
'event_person_informal_name', 'event_person_given_name',
'event_person_family_name', 'event_person_display_name', 'event_person_full_name',
'event_person_affiliations', 'event_person_email',
'event_exhibit_name',
'event_person', 'event_person_id_random', 'created_on', 'updated_on'
}
)
# ### SECTION ### Process data # ### SECTION ### Process data
if event_exhibit_tracking_dict_up_result := sql_update( if event_exhibit_tracking_dict_up_result := sql_update(
@@ -210,19 +234,21 @@ def load_event_exhibit_tracking_obj(
def get_event_exhibit_tracking_rec_list( def get_event_exhibit_tracking_rec_list(
event_id: int|str = None, event_id: int|str = None,
event_exhibit_id: int|str = None, event_exhibit_id: int|str = None,
event_badge_id: int|str = None,
event_person_id: int|str = None, event_person_id: int|str = None,
hidden: str = 'not_hidden', # hidden, not_hidden, all hidden: str = 'not_hidden', # hidden, not_hidden, all
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
limit: int = 100, limit: int = 100,
offset: int = 0, offset: int = 0,
) -> list|bool: ) -> list|bool:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
data = {} data = {}
sql_select_event_id = '' sql_select_event_id = ''
sql_select_event_exhibit_id = '' sql_select_event_exhibit_id = ''
sql_select_event_badge_id = ''
sql_select_event_person_id = '' sql_select_event_person_id = ''
if event_id: if event_id:
@@ -241,6 +267,13 @@ def get_event_exhibit_tracking_rec_list(
data['event_exhibit_id'] = event_exhibit_id data['event_exhibit_id'] = event_exhibit_id
sql_select_event_exhibit_id = f'AND `event_exhibit_tracking`.event_exhibit_id = :event_exhibit_id' sql_select_event_exhibit_id = f'AND `event_exhibit_tracking`.event_exhibit_id = :event_exhibit_id'
if event_badge_id:
if event_badge_id := redis_lookup_id_random(record_id_random=event_badge_id, table_name='event_badge'): pass
else: return False
data['event_badge_id'] = event_badge_id
sql_select_event_badge_id = f'AND `event_exhibit_tracking`.event_badge_id = :event_badge_id'
if event_person_id: if event_person_id:
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
else: return False else: return False
@@ -275,17 +308,19 @@ def get_event_exhibit_tracking_rec_list(
sql_limit = '' sql_limit = ''
sql = f""" sql = f"""
SELECT `event_exhibit_tracking`.id AS 'event_exhibit_tracking_id', `event_exhibit_tracking`.id_random AS 'event_exhibit_tracking_id_random' SELECT `event_exhibit_tracking`.id AS 'event_exhibit_tracking_id', `event_exhibit_tracking`.id_random AS 'event_exhibit_tracking_id_random', priority AS 'priority', sort AS 'sort', hide AS 'hide', enable AS 'enable'
FROM `v_event_exhibit_tracking` AS `event_exhibit_tracking` FROM `v_event_exhibit_tracking` AS `event_exhibit_tracking`
WHERE WHERE
{sql_select_event_id} {sql_select_event_id}
{sql_select_event_exhibit_id} {sql_select_event_exhibit_id}
{sql_select_event_badge_id}
{sql_select_event_person_id} {sql_select_event_person_id}
{sql_hidden} {sql_hidden}
{sql_enabled} {sql_enabled}
ORDER BY `event_exhibit_tracking`.priority DESC, `event_exhibit_tracking`.sort ASC, `event_exhibit_tracking`.created_on DESC, `event_exhibit_tracking`.updated_on DESC ORDER BY `event_exhibit_tracking`.priority DESC, `event_exhibit_tracking`.sort ASC, `event_exhibit_tracking`.created_on DESC, `event_exhibit_tracking`.updated_on DESC
{sql_limit}; {sql_limit};
""" """
log.debug(sql)
if event_exhibit_rec_li_result := sql_select(data=data, sql=sql, as_list=True, log_lvl=logging.WARNING): if event_exhibit_rec_li_result := sql_select(data=data, sql=sql, as_list=True, log_lvl=logging.WARNING):
log.info('Got a list result') log.info('Got a list result')

View File

@@ -51,12 +51,24 @@ class Event_Exhibit_Tracking_Base(BaseModel):
# Including convenience data # Including convenience data
# This is only for convenience. Probably going to keep unless it causes a problem. # This is only for convenience. Probably going to keep unless it causes a problem.
event_badge_informal_name: Optional[str] event_badge_informal_name: Optional[str]
event_badge_title_names: Optional[str]
event_badge_given_name: Optional[str] event_badge_given_name: Optional[str]
event_badge_middle_name: Optional[str]
event_badge_family_name: Optional[str] event_badge_family_name: Optional[str]
event_badge_display_name: Optional[str] event_badge_display_name: Optional[str]
event_badge_full_name: Optional[str] event_badge_full_name: Optional[str]
event_badge_designations: Optional[str]
event_badge_professional_title: Optional[str]
event_badge_affiliations: Optional[str] event_badge_affiliations: Optional[str]
event_badge_email: Optional[str] event_badge_email: Optional[str]
event_badge_city: Optional[str]
country_subdivision_code: Optional[str]
state_province_abb: Optional[str]
state_province: Optional[str]
country_alpha_2_code: Optional[str]
country: Optional[str]
event_person_informal_name: Optional[str] event_person_informal_name: Optional[str]
event_person_given_name: Optional[str] event_person_given_name: Optional[str]

View File

@@ -34,7 +34,7 @@ async def post_event_exhibit_tracking_obj(
commons: Common_Route_Params = Depends(common_route_params), commons: Common_Route_Params = Depends(common_route_params),
): ):
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
# time.sleep(1) # time.sleep(1)
@@ -64,9 +64,28 @@ async def post_event_exhibit_tracking_obj(
): pass ): pass
elif event_exhibit_tracking_id is None: elif event_exhibit_tracking_id is None:
# NOTE: I think it makes sense to try and look up the record using the Exhibitor and Person ID. This is for API call convenience. # NOTE: I think it makes sense to try and look up the record using the Exhibitor and Person ID. This is for API call convenience.
if event_exhibit_tracking_rec_li := get_event_exhibit_tracking_rec_list(event_exhibit_id=event_exhibit_id,event_person_id=event_person_id): if event_exhibit_tracking_rec_li := get_event_exhibit_tracking_rec_list(
event_exhibit_id = event_exhibit_id,
event_badge_id = event_badge_id,
event_person_id = event_person_id,
hidden = 'all',
):
# log.debug(event_exhibit_tracking_rec_li)
event_exhibit_tracking_rec = event_exhibit_tracking_rec_li[0] event_exhibit_tracking_rec = event_exhibit_tracking_rec_li[0]
event_exhibit_tracking_id = event_exhibit_tracking_rec.get('event_exhibit_tracking_id') event_exhibit_tracking_id = event_exhibit_tracking_rec.get('event_exhibit_tracking_id')
log.debug(event_exhibit_tracking_rec.get('hide'))
if event_exhibit_tracking_rec.get('hide'):
event_exhibit_tracking_data = {}
event_exhibit_tracking_data['hide'] = False
if event_exhibit_tracking_update_result := update_event_exhibit_tracking_obj(
event_exhibit_tracking_id = event_exhibit_tracking_id,
event_exhibit_tracking_dict_obj = event_exhibit_tracking_data,
): pass
else:
log.warning('Likely bad request')
return mk_resp(data=False, status_code=400, response=commons.response, status_message='Not updated. Something failed while processing the data. Check the field names and data types.') # Bad Request
else: else:
log.warning('Should this be possible if there was an existing record? Assuming there is an existing record because the SQL function result was None.') log.warning('Should this be possible if there was an existing record? Assuming there is an existing record because the SQL function result was None.')
return mk_resp(data=None, status_code=200, response=commons.response, status_message='Not created. Likely duplicate entry. Returning None.') # Success return mk_resp(data=None, status_code=200, response=commons.response, status_message='Not created. Likely duplicate entry. Returning None.') # Success