diff --git a/app/routers/e_impexium.py b/app/routers/e_impexium.py index a9308fd..f45e164 100644 --- a/app/routers/e_impexium.py +++ b/app/routers/e_impexium.py @@ -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() ###