Work on Impexium and badges for ISHLT

This commit is contained in:
Scott Idem
2022-02-24 18:11:14 -05:00
parent 0ff464dde2
commit d4da7535f9
4 changed files with 107 additions and 13 deletions

View File

@@ -26,6 +26,7 @@ router = APIRouter()
@router.get('/event/{e_impexium_event_id}/import_reg', response_model=Resp_Body_Base)
async def event_import_reg(
e_impexium_event_id: str = Query(..., min_length=11, max_length=22), # For ISHLT: 42_AM (2022-04); EX22_AM (2022-04); 41V_2 (2021-04)
details: bool = False,
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
@@ -41,7 +42,7 @@ 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, page=page)
event_registrant_li = get_event_registrants(event_code=e_impexium_event_id, details=details, page=page)
log.debug(type(event_registrant_li))
# return mk_resp(data=len(event_registrant_li), status_code=501, response=commons.response) # Not Implemented
@@ -62,6 +63,12 @@ async def event_import_reg(
event_person_data['event_id'] = event_id
event_person_data['external_id'] = external_id
email = None
if details:
if emails := event_registrant.get('emails'):
if isinstance(emails, list) and len(emails):
email = emails[0].get('address')
event_person_profile_data = {}
event_person_profile_data['pronouns'] = event_registrant.get('gender')
event_person_profile_data['informal_name'] = event_registrant.get('preferredFirstName')
@@ -78,6 +85,8 @@ async def event_import_reg(
event_person_profile_data['affiliations'] = event_registrant.get('badgeOrganization')
if email: event_person_profile_data['email'] = email
event_person_data['event_person_profile'] = {}
event_person_data['event_person_profile'] = event_person_profile_data
@@ -106,6 +115,8 @@ async def event_import_reg(
event_badge_data['affiliations'] = event_registrant.get('badgeOrganization')
if email: event_badge_data['email'] = email
event_badge_data['city'] = event_registrant.get('badgeCity')
event_badge_data['state_province'] = event_registrant.get('badgeState')