Work on things related to event_person, tracking, badges, sessions, etc
This commit is contained in:
@@ -407,8 +407,7 @@ async def get_event_person_obj(
|
||||
log.debug(locals())
|
||||
|
||||
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
|
||||
else:
|
||||
return mk_resp(data=None, status_code=404)
|
||||
else: return mk_resp(data=None, status_code=404, response=response)
|
||||
|
||||
if event_person_obj := load_event_person_obj(
|
||||
event_person_id = event_person_id,
|
||||
@@ -436,10 +435,172 @@ async def get_event_person_obj(
|
||||
else:
|
||||
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
||||
|
||||
return mk_resp(data=event_person_obj)
|
||||
return mk_resp(data=event_person_obj, response=response)
|
||||
# ### END ### API Event Person ### get_event_person_obj() ###
|
||||
|
||||
|
||||
# ### BEGIN ### API Event Person ### search_event_person_obj_li() ###
|
||||
# Updated 2021-09-21
|
||||
@router.get('/event/{event_id}/person/search', response_model=Resp_Body_Base)
|
||||
async def search_event_person_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_person_id: str = Query('', max_length=50),
|
||||
external_id: str = Query('', max_length=50),
|
||||
given_name: str = Query('', max_length=25),
|
||||
family_name: str = Query('', max_length=25),
|
||||
email: str = Query('', max_length=50),
|
||||
limit: int = 50,
|
||||
enabled: str = 'enabled',
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: bool = True,
|
||||
exclude_unset: bool = True,
|
||||
response: Response = Response,
|
||||
):
|
||||
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:
|
||||
log.info(f'Looking up Event ID based on Event ID Random: {event_id}')
|
||||
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)
|
||||
|
||||
if event_person_id:
|
||||
log.info(f'Looking up Event Person ID based on Event ID Random: {event_person_id}')
|
||||
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
|
||||
else: return mk_resp(data=None, status_code=404, response=response)
|
||||
|
||||
data = {}
|
||||
data['account_id'] = account_id
|
||||
data['event_id'] = event_id
|
||||
data['event_person_id'] = event_person_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['from_datetime'] = from_datetime
|
||||
# data['to_datetime'] = to_datetime
|
||||
log.debug(data)
|
||||
|
||||
if enabled in ['enabled', 'disabled', 'all']:
|
||||
if enabled == 'enabled':
|
||||
data['enable'] = True
|
||||
sql_enabled = f'AND `event_person`.enable = :enable'
|
||||
elif enabled == 'disabled':
|
||||
data['enable'] = False
|
||||
sql_enabled = f'AND `event_person`.enable = :enable'
|
||||
elif enabled == 'all':
|
||||
sql_enabled = ''
|
||||
|
||||
if limit:
|
||||
data['limit'] = limit
|
||||
sql_limit = f'LIMIT :limit'
|
||||
else:
|
||||
sql_limit = ''
|
||||
|
||||
if event_person_id:
|
||||
log.info('Looking up Event Person based on event_person_id')
|
||||
sql = f"""
|
||||
SELECT *
|
||||
FROM `v_event_person` AS event_person
|
||||
WHERE event_person.account_id = :account_id
|
||||
AND event_person.event_id = :event_id
|
||||
AND event_person.event_person_id LIKE :event_person_id
|
||||
{sql_enabled}
|
||||
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||
{sql_limit};
|
||||
"""
|
||||
elif external_id:
|
||||
log.info('Looking up Event Person based on external_id')
|
||||
sql = f"""
|
||||
SELECT *
|
||||
FROM `v_event_person` AS event_person
|
||||
WHERE event_person.account_id = :account_id
|
||||
AND event_person.event_id = :event_id
|
||||
AND event_person.external_id LIKE :external_id
|
||||
{sql_enabled}
|
||||
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||
{sql_limit};
|
||||
"""
|
||||
elif given_name and family_name and email:
|
||||
log.info('Looking up Event Person based on given_name, family_name, and email')
|
||||
sql = f"""
|
||||
SELECT *
|
||||
FROM `v_event_person` AS event_person
|
||||
WHERE event_person.account_id = :account_id
|
||||
AND event_person.event_id = :event_id
|
||||
AND (event_person.event_person_given_name LIKE :given_name OR event_person.person_given_name LIKE :given_name)
|
||||
AND (event_person.event_person_family_name LIKE :family_name OR event_person.person_family_name LIKE :family_name)
|
||||
AND (event_person.event_person_email LIKE :email OR event_person.user_email LIKE :email)
|
||||
{sql_enabled}
|
||||
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||
{sql_limit};
|
||||
"""
|
||||
elif given_name and family_name:
|
||||
log.info('Looking up Event Person based on given_name and family_name')
|
||||
sql = f"""
|
||||
SELECT *
|
||||
FROM `v_event_person` AS event_person
|
||||
WHERE event_person.account_id = :account_id
|
||||
AND event_person.event_id = :event_id
|
||||
AND (event_person.event_person_given_name LIKE :given_name OR event_person.person_given_name LIKE :given_name)
|
||||
AND (event_person.event_person_family_name LIKE :family_name OR event_person.person_family_name LIKE :family_name)
|
||||
AND (event_person.event_person_email IS NULL OR event_person.event_person_email LIKE :email OR event_person.user_email LIKE :email)
|
||||
{sql_enabled}
|
||||
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||
{sql_limit};
|
||||
"""
|
||||
elif given_name or family_name:
|
||||
log.info('Looking up Event Person based on given_name or family_name')
|
||||
sql = f"""
|
||||
SELECT *
|
||||
FROM `v_event_person` AS event_person
|
||||
WHERE event_person.account_id = :account_id
|
||||
AND event_person.event_id = :event_id
|
||||
|
||||
AND (event_person.event_person_given_name IS NULL OR event_person.event_person_given_name LIKE :given_name OR event_person.person_given_name LIKE :given_name)
|
||||
|
||||
AND (event_person.event_person_family_name IS NULL OR event_person.event_person_family_name LIKE :family_name OR event_person.person_family_name LIKE :family_name)
|
||||
|
||||
AND (event_person.event_person_email IS NULL OR event_person.event_person_email LIKE :email OR event_person.user_email LIKE :email)
|
||||
|
||||
{sql_enabled}
|
||||
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||
{sql_limit};
|
||||
"""
|
||||
elif email:
|
||||
log.info('Looking up Event Person based on email')
|
||||
sql = f"""
|
||||
SELECT *
|
||||
FROM `v_event_person` AS event_person
|
||||
WHERE event_person.account_id = :account_id
|
||||
AND event_person.event_id = :event_id
|
||||
AND (event_person.event_person_given_name IS NULL OR event_person.event_person_given_name LIKE :given_name OR event_person.person_given_name LIKE :given_name)
|
||||
AND (event_person.event_person_family_name IS NULL OR event_person.event_person_family_name LIKE :family_name OR event_person.person_family_name LIKE :family_name)
|
||||
AND (event_person.event_person_email LIKE :email OR event_person.user_email LIKE :email)
|
||||
{sql_enabled}
|
||||
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||
{sql_limit};
|
||||
"""
|
||||
|
||||
log.debug(sql)
|
||||
if sql_result := sql_select(data=data, sql=sql, as_list=True, rm_id_random=True):
|
||||
resp_data_li = []
|
||||
for record in sql_result:
|
||||
resp_data = Event_Person_Base(**record).dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
resp_data_li.append(resp_data)
|
||||
|
||||
return mk_resp(data=resp_data_li, response=response)
|
||||
else:
|
||||
log.debug(sql_result)
|
||||
return mk_resp(data=False, status_code=404, response=response)
|
||||
# ### END ### API Event Person ### search_event_person_obj_li() ###
|
||||
|
||||
|
||||
|
||||
# ### BEGIN ### API Event Person Methods ### get_event_registration_event_person_obj_li() ###
|
||||
# Similar to event_registration.py: /event/registration/<id> inc_event_person_list
|
||||
# Updated 2021-08-17
|
||||
|
||||
Reference in New Issue
Block a user