Work on badges

This commit is contained in:
Scott Idem
2021-09-22 18:17:28 -04:00
parent ae16f30c42
commit 0778d472f8

View File

@@ -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() ###