Clean up of Impexium API related functions. Ready for cron job time!

This commit is contained in:
Scott Idem
2022-03-23 18:25:20 -04:00
parent c625cda845
commit b284049782

View File

@@ -32,6 +32,9 @@ async def event_import_reg(
page: int = 0, # 250 per page from Impexium
event_id: str = Query(..., min_length=11, max_length=22), # For ISHLT: ZDzTBlevhZs (2022-04)
# Account ID For ISHLT: d8TqXqf1EOg
return_detail: bool = False,
commons: Common_Route_Params = Depends(common_route_params),
):
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
@@ -44,14 +47,22 @@ async def event_import_reg(
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, status_message=f'The Event ID was not found. Event ID: {event_id}', response=commons.response)
event_registrant_li = get_event_registrants(event_code=e_impexium_event_id, details=details, page=page)
event_registrant_li = get_event_registrants(
event_code = e_impexium_event_id,
registered_since = registered_since,
details = details,
page = page
)
log.debug(type(event_registrant_li))
if event_registrant_li: pass
else: return mk_resp(data=None, status_code=404, status_message=f'Checked for registrations in Impexium. No Impexium registrations found.', response=commons.response)
# return mk_resp(data=len(event_registrant_li), status_code=501, response=commons.response) # Not Implemented
loop_count = 0
loop_limit = 2500 # 200
event_person_li = []
event_person_summary_li = []
for event_registrant in event_registrant_li:
if loop_count > loop_limit: break
log.info(f"Record Num: {event_registrant.get('recordNumber')}, Registration Num: {event_registrant.get('registrationNumber')}, Registrant Type Code: {event_registrant.get('registrantTypeCode')}")
@@ -62,6 +73,10 @@ async def event_import_reg(
external_id_new = str(e_impexium_event_id)+':'+str(event_registrant.get('recordNumber'))+':'+str(event_registrant.get('registrationNumber'))
external_sys_id = event_registrant.get('id') # Impexium UUID for person
event_person_summary_data = {}
event_person_summary_data['external_id'] = external_id_new
event_person_data = {}
event_person_data['account_id'] = account_id
event_person_data['event_id'] = event_id
@@ -78,6 +93,7 @@ async def event_import_reg(
if emails := event_registrant.get('emails'):
if isinstance(emails, list) and len(emails):
email = emails[0].get('address')
event_person_summary_data['email'] = email
if addresses := event_registrant.get('addresses'):
if isinstance(addresses, list) and len(addresses):
@@ -121,6 +137,7 @@ async def event_import_reg(
event_person_profile_data['professional_title'] = event_registrant.get('title') # Should this be None if no degrees found above???
event_person_profile_data['display_name'] = event_registrant.get('badgeName')
event_person_summary_data['display_name'] = event_registrant.get('badgeName')
if organization_name:
event_person_profile_data['affiliations'] = organization_name # Ideally should be organization_name for ISHLT
@@ -362,9 +379,13 @@ async def event_import_reg(
# id, attendedDate, sessions, itemizedCustomFields, guestOfRecordNumber, registrantTypeName, boughtTogetherWith, primaryOrganization, customerType, showInDirectory, addresses, emails, phones
event_person_li.append(event_person_data)
event_person_summary_li.append(event_person_summary_data)
loop_count = loop_count + 1
return mk_resp(data=event_person_li, response=commons.response)
if return_detail:
return mk_resp(data=event_person_li, status_message=f'Checked for registrations in Impexium. Found {len(event_person_li)} Impexium registrations.', response=commons.response)
else:
return mk_resp(data=event_person_summary_li, status_message=f'Checked for registrations in Impexium. Found {len(event_person_summary_li)} Impexium registrations.', response=commons.response)
# ### END ### API Impexium ### event_import_reg() ###