From efcbe17b6b0f1d8337d1fd587ccd751719db0b6b Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 27 Jun 2022 19:51:20 -0400 Subject: [PATCH] Work on cleaning up viewing and searching for badge only records. Not tied to an event_person record. --- app/routers/event_badge.py | 164 +++++++++++++++++++++++-------------- 1 file changed, 101 insertions(+), 63 deletions(-) diff --git a/app/routers/event_badge.py b/app/routers/event_badge.py index 31cd7f1..2293172 100644 --- a/app/routers/event_badge.py +++ b/app/routers/event_badge.py @@ -154,6 +154,8 @@ async def search_event_badge_obj_li( family_name: str = Query('', max_length=25), email: str = Query('', max_length=50), + badge_only: bool = False, # NOTE: Use the v_event_badge_only view + hidden: str = 'not_hidden', # hidden, not_hidden, all commons: Common_Route_Params = Depends(common_route_params), @@ -267,69 +269,97 @@ async def search_event_badge_obj_li( {sql_limit}; """ elif query_str and len(query_str) > 1: - # sql = f""" - # SELECT * - # FROM `v_event_badge` AS event_badge - # WHERE event_badge.event_id = :event_id - # AND ( - # event_badge.given_name LIKE :query_str - # OR event_badge.family_name LIKE :query_str - # OR event_badge.email LIKE :query_str - # ) - # {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 IN (:query_li) - # OR event_badge.family_name IN (:query_li) - # OR event_badge.email IN (:query_li) - # ) - # {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 - {sql_badge_type_code} - AND event_badge.query_str LIKE :query_str - {sql_hidden} - {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 badge_only: + sql = f""" + SELECT * + FROM `v_event_badge_only` AS event_badge + WHERE event_badge.event_id = :event_id + {sql_badge_type_code} + AND event_badge.query_str LIKE :query_str + {sql_hidden} + {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.event_id = :event_id + # AND ( + # event_badge.given_name LIKE :query_str + # OR event_badge.family_name LIKE :query_str + # OR event_badge.email LIKE :query_str + # ) + # {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 IN (:query_li) + # OR event_badge.family_name IN (:query_li) + # OR event_badge.email IN (:query_li) + # ) + # {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 + {sql_badge_type_code} + AND event_badge.query_str LIKE :query_str + {sql_hidden} + {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 - {sql_badge_type_code} - AND (event_badge.given_name LIKE :given_name - AND event_badge.family_name LIKE :family_name) - AND event_badge.email LIKE :email - {sql_hidden} - {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 badge_only: + sql = f""" + SELECT * + FROM `v_event_badge_only` AS event_badge + WHERE event_badge.event_id = :event_id + {sql_badge_type_code} + AND (event_badge.given_name LIKE :given_name + AND event_badge.family_name LIKE :family_name) + AND event_badge.email LIKE :email + {sql_hidden} + {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 + {sql_badge_type_code} + AND (event_badge.given_name LIKE :given_name + AND event_badge.family_name LIKE :family_name) + AND event_badge.email LIKE :email + {sql_hidden} + {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=False, log_lvl=logging.INFO): # rm_id_random=True @@ -401,7 +431,15 @@ async def get_event_badge_obj( # return mk_resp(data=event_badge_dict, response=commons.response) response_data = event_badge_obj else: - return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request + # NOTE: This is not really the best way to do this. This is to help get badges that are not tied to an event_person record. + if event_badge_obj := load_event_badge_obj( + event_badge_id = event_badge_id, + badge_only = True, + inc_event_badge_template = inc_event_badge_template, + ): + response_data = event_badge_obj + else: + return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request return mk_resp(data=response_data, response=commons.response) # ### END ### API Event Badge ### get_event_badge_obj() ###