From 0778d472f8553a2c876c26041dc2cd75542f1b97 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 22 Sep 2021 18:17:28 -0400 Subject: [PATCH] Work on badges --- app/routers/event_badge.py | 104 +++++++++++++++++++++++++------------ 1 file changed, 72 insertions(+), 32 deletions(-) diff --git a/app/routers/event_badge.py b/app/routers/event_badge.py index 8b78a6d..f9e87a5 100644 --- a/app/routers/event_badge.py +++ b/app/routers/event_badge.py @@ -122,7 +122,7 @@ async def get_event_badge_obj_li( return mk_resp(data=resp_data_li, response=response) else: log.debug(sql_result) - return mk_resp(data=False, status_code=404, response=response) + return mk_resp(data=None, status_code=404, response=response) result = get_obj_li_template( obj_type=obj_type, @@ -140,6 +140,8 @@ async def get_event_badge_obj_li( async def search_event_badge_obj_li( # account_id: str = Query(None, min_length=11, max_length=22), event_id: str = Query(None, min_length=11, max_length=22), + event_badge_id: str = Query(None, min_length=3, max_length=22), + event_person_id: str = Query(None, min_length=3, max_length=22), external_id: str = Query('%', max_length=50), given_name: str = Query('%', max_length=25), family_name: str = Query('%', max_length=25), @@ -154,13 +156,30 @@ async def search_event_badge_obj_li( log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) + if account_id := redis_lookup_id_random(record_id_random=x_account_id, table_name='account'): pass + else: return mk_resp(data=None, status_code=404, response=response) + + if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass + else: return mk_resp(data=None, status_code=404, response=response) + data = {} - data['account_id_random'] = x_account_id - data['event_id_random'] = event_id - data['external_id'] = '%'+external_id+'%' - data['given_name'] = '%'+given_name+'%' - data['family_name'] = '%'+family_name+'%' - data['email'] = '%'+email+'%' # Adding the % symbol here because it turns certain combinations into special characters + data['account_id'] = account_id + data['event_id'] = event_id + + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_badge_id) + + if event_badge_id and len(event_badge_id) > 2: + log.info(f'Found event_badge_id: {event_badge_id}') + data['event_badge_id_random'] = f'%{event_badge_id}%' + elif event_person_id and len(event_person_id) > 2: + log.info(f'Found event_person_id: {event_person_id}') + data['event_person_id_random'] = f'%{event_person_id}%' + else: + data['external_id'] = '%'+external_id+'%' + data['given_name'] = '%'+given_name+'%' + data['family_name'] = '%'+family_name+'%' + data['email'] = '%'+email+'%' # Adding the % symbol here because it turns certain combinations into special characters # data['from_datetime'] = from_datetime # data['to_datetime'] = to_datetime log.debug(data) @@ -181,32 +200,53 @@ async def search_event_badge_obj_li( else: sql_limit = '' - sql = f""" - SELECT * - FROM `v_event_badge` AS event_badge - WHERE event_badge.account_id = :account_id - AND (event_badge.external_id LIKE :external_id OR event_badge.external_id IS NULL) - AND (event_badge.given_name LIKE :given_name - AND event_badge.family_name LIKE :family_name) - AND event_badge.email LIKE :email - {sql_enabled} - ORDER BY event_badge.given_name ASC, event_badge.family_name ASC, event_badge.created_on DESC, event_badge.updated_on DESC - {sql_limit}; - """ - sql = f""" - SELECT * - FROM `v_event_badge` AS event_badge - WHERE event_badge.event_id = :event_id - AND (event_badge.given_name LIKE :given_name - AND event_badge.family_name LIKE :family_name) - AND event_badge.email LIKE :email - {sql_enabled} - ORDER BY event_badge.given_name ASC, event_badge.family_name ASC, event_badge.created_on DESC, event_badge.updated_on DESC - {sql_limit}; - """ + if event_badge_id and len(event_badge_id) > 2: + sql = f""" + SELECT * + FROM `v_event_badge` AS event_badge + WHERE event_badge.event_id = :event_id + AND event_badge.event_badge_id_random LIKE :event_badge_id_random + {sql_enabled} + ORDER BY event_badge.given_name ASC, event_badge.family_name ASC, event_badge.created_on DESC, event_badge.updated_on DESC + {sql_limit}; + """ + elif event_person_id and len(event_person_id) > 2: + sql = f""" + SELECT * + FROM `v_event_badge` AS event_badge + WHERE event_badge.event_id = :event_id + AND event_badge.event_person_id_random LIKE :event_person_id_random + {sql_enabled} + ORDER BY event_badge.given_name ASC, event_badge.family_name ASC, event_badge.created_on DESC, event_badge.updated_on DESC + {sql_limit}; + """ + else: + # sql = f""" + # SELECT * + # FROM `v_event_badge` AS event_badge + # WHERE event_badge.account_id = :account_id + # AND (event_badge.external_id LIKE :external_id OR event_badge.external_id IS NULL) + # AND (event_badge.given_name LIKE :given_name + # AND event_badge.family_name LIKE :family_name) + # AND event_badge.email LIKE :email + # {sql_enabled} + # ORDER BY event_badge.given_name ASC, event_badge.family_name ASC, event_badge.created_on DESC, event_badge.updated_on DESC + # {sql_limit}; + # """ + sql = f""" + SELECT * + FROM `v_event_badge` AS event_badge + WHERE event_badge.event_id = :event_id + AND (event_badge.given_name LIKE :given_name + AND event_badge.family_name LIKE :family_name) + AND event_badge.email LIKE :email + {sql_enabled} + ORDER BY event_badge.given_name ASC, event_badge.family_name ASC, event_badge.created_on DESC, event_badge.updated_on DESC + {sql_limit}; + """ log.debug(sql) - if sql_result := sql_select(data=data, sql=sql, as_list=True, rm_id_random=True): + if sql_result := sql_select(data=data, sql=sql, as_list=True, rm_id_random=False): # rm_id_random=True resp_data_li = [] for record in sql_result: resp_data = Event_Badge_Base(**record).dict(by_alias=by_alias, exclude_unset=exclude_unset) @@ -215,7 +255,7 @@ async def search_event_badge_obj_li( return mk_resp(data=resp_data_li, response=response) else: log.debug(sql_result) - return mk_resp(data=False, status_code=404, response=response) + return mk_resp(data=None, status_code=404, response=response) # ### END ### API Event Badge ### search_event_badge_obj_li() ###