Minor improvements for importing

This commit is contained in:
Scott Idem
2024-03-25 11:48:10 -04:00
parent 83aa943410
commit 80b218c816

View File

@@ -331,7 +331,7 @@ async def event_importing_create_update_w_external_id(
# ### BEGIN ### Event Importing ### event_importing_program_data() ### # ### BEGIN ### Event Importing ### event_importing_program_data() ###
# Based on the program import template the clients are given. # Based on the program import template the clients are given.
# Create and update locations, sessions, presentations, and presenters as needed. # Create and update locations, sessions, presentations, and presenters as needed.
# Updated 2023-05-01 # Updated 2024-03-25
@router.post('/event/{event_id}/importing/program_data', response_model=Resp_Body_Base) @router.post('/event/{event_id}/importing/program_data', response_model=Resp_Body_Base)
async def event_importing_program_data( async def event_importing_program_data(
event_id: str = Query(..., min_length=11, max_length=22), event_id: str = Query(..., min_length=11, max_length=22),
@@ -558,9 +558,9 @@ async def event_importing_program_data(
event_location_data['code'] = record.get('location_code') event_location_data['code'] = record.get('location_code')
event_location_data['event_id'] = event_id # INSERT and UPDATE the event_id just in case event_location_data['event_id'] = event_id # INSERT and UPDATE the event_id just in case
if record.get('location_name'): if record.get('location_name'):
event_location_data['name'] = record.get('location_name') event_location_data['name'] = record.get('location_name').strip()
elif record.get('location_code'): elif record.get('location_code'):
event_location_data['name'] = record.get('location_code') event_location_data['name'] = record.get('location_code').strip()
event_location_data['enable'] = True event_location_data['enable'] = True
event_location_id = None event_location_id = None
@@ -610,10 +610,16 @@ async def event_importing_program_data(
""" """
event_session_data = {} event_session_data = {}
event_session_data['code'] = record.get('session_code') if record.get('session_code'):
event_session_data['code'] = record.get('session_code').strip()
else:
event_session_data['code'] = None
event_session_data['event_id'] = event_id # INSERT and UPDATE the event_id just in case event_session_data['event_id'] = event_id # INSERT and UPDATE the event_id just in case
event_session_data['event_location_id'] = event_location_id # INSERT and UPDATE the event_location_id in case the session was moved event_session_data['event_location_id'] = event_location_id # INSERT and UPDATE the event_location_id in case the session was moved
event_session_data['name'] = record.get('session_name') if record.get('session_name'):
event_session_data['name'] = record.get('session_name').strip()
else:
event_session_data['name'] = None
event_session_data['description'] = record.get('session_description') event_session_data['description'] = record.get('session_description')
event_session_data['start_datetime'] = record.get('session_start_datetime') event_session_data['start_datetime'] = record.get('session_start_datetime')
@@ -679,11 +685,17 @@ async def event_importing_program_data(
""" """
event_presentation_data = {} event_presentation_data = {}
event_presentation_data['code'] = record.get('presentation_code') if record.get('presentation_code'):
event_presentation_data['code'] = record.get('presentation_code').strip()
else:
event_presentation_data['code'] = None
event_presentation_data['event_id'] = event_id # INSERT and UPDATE the event_id just in case event_presentation_data['event_id'] = event_id # INSERT and UPDATE the event_id just in case
event_presentation_data['event_session_id'] = event_session_id # UPDATE the event_session_id in case the presentation was moved event_presentation_data['event_session_id'] = event_session_id # UPDATE the event_session_id in case the presentation was moved
event_presentation_data['name'] = record.get('presentation_name') if record.get('presentation_name'):
event_presentation_data['name'] = record.get('presentation_name').strip()
else:
event_presentation_data['name'] = None
event_presentation_data['description'] = record.get('presentation_description') event_presentation_data['description'] = record.get('presentation_description')
if record.get('presentation_start_datetime'): if record.get('presentation_start_datetime'):
@@ -706,38 +718,40 @@ async def event_importing_program_data(
event_presentation_data['notes'] = record.get('presentation_notes') event_presentation_data['notes'] = record.get('presentation_notes')
event_presentation_id = None event_presentation_id = None
if event_presentation_rec_result := sql_select(data=data, sql=sql): if (record.get('presentation_external_id') or record.get('presentation_code')) and record.get('presentation_name'):
# Pull out IDs and UPDATE existing event_presentation record if event_presentation_rec_result := sql_select(data=data, sql=sql):
event_presentation_rec = event_presentation_rec_result # Pull out IDs and UPDATE existing event_presentation record
event_presentation_id = event_presentation_rec.get('event_presentation_id', None) event_presentation_rec = event_presentation_rec_result
event_presentation_id_random = event_presentation_rec.get('event_presentation_id_random', None) event_presentation_id = event_presentation_rec.get('event_presentation_id', None)
event_presentation_name = event_presentation_rec.get('name', None) event_presentation_id_random = event_presentation_rec.get('event_presentation_id_random', None)
log.info(f'Found one record. Event Presentation ID: {event_presentation_id_random} Event Presentation Name: {event_presentation_name}') event_presentation_name = event_presentation_rec.get('name', None)
log.info(f'Found one record. Event Presentation ID: {event_presentation_id_random} Event Presentation Name: {event_presentation_name}')
event_presentation_data['id'] = event_presentation_id event_presentation_data['id'] = event_presentation_id
log.debug(event_presentation_data) log.debug(event_presentation_data)
if allow_updates: if allow_updates:
if event_presentation_obj_up_result := sql_update(data=event_presentation_data, table_name='event_presentation'): if event_presentation_obj_up_result := sql_update(data=event_presentation_data, table_name='event_presentation'):
log.debug(event_presentation_obj_up_result) log.debug(event_presentation_obj_up_result)
else: else:
log.warning(event_presentation_obj_up_result) log.warning(event_presentation_obj_up_result)
pass # Probably nothing to update pass # Probably nothing to update
else: else:
log.info(f'No record found that needs to be updated. Creating a new event presentation. Event Presentation External ID: {event_presentation_external_id}') log.info(f'No record found that needs to be updated. Creating a new event presentation. Event Presentation External ID: {event_presentation_external_id}')
event_presentation_data['external_id'] = event_presentation_external_id # NOTE: This should never change event_presentation_data['external_id'] = event_presentation_external_id # NOTE: This should never change
log.debug(event_presentation_data) log.debug(event_presentation_data)
if allow_inserts:
if event_presentation_obj_in_result := sql_insert(data=event_presentation_data, table_name='event_presentation'):
log.debug(event_presentation_obj_in_result)
event_presentation_id = event_presentation_obj_in_result
else:
log.warning(event_presentation_obj_in_result)
continue # Something unexpected may have happened
if allow_inserts:
if event_presentation_obj_in_result := sql_insert(data=event_presentation_data, table_name='event_presentation'):
log.debug(event_presentation_obj_in_result)
event_presentation_id = event_presentation_obj_in_result
else:
log.warning(event_presentation_obj_in_result)
continue # Something unexpected may have happened
data['event_presentation_id'] = event_presentation_id data['event_presentation_id'] = event_presentation_id
# INSERT or UPDATE event_presenter # INSERT or UPDATE event_presenter
@@ -782,38 +796,40 @@ async def event_importing_program_data(
event_presenter_data['notes'] = record.get('presenter_notes', '') event_presenter_data['notes'] = record.get('presenter_notes', '')
event_presenter_id = None event_presenter_id = None
if event_presenter_rec_result := sql_select(data=data, sql=sql): if (record.get('presenter_code') or record.get('presenter_number')) and record.get('presenter_given_name'):
# Pull out IDs and UPDATE existing event_presenter record if event_presenter_rec_result := sql_select(data=data, sql=sql):
event_presenter_rec = event_presenter_rec_result # Pull out IDs and UPDATE existing event_presenter record
event_presenter_id = event_presenter_rec.get('event_presenter_id') event_presenter_rec = event_presenter_rec_result
event_presenter_id_random = event_presenter_rec.get('event_presenter_id_random') event_presenter_id = event_presenter_rec.get('event_presenter_id')
event_presenter_given_name = event_presenter_rec.get('given_name') event_presenter_id_random = event_presenter_rec.get('event_presenter_id_random')
log.info(f'Found one record. Event Presenter ID: {event_presenter_id_random} Event Presenter Given Name: {event_presenter_given_name}') event_presenter_given_name = event_presenter_rec.get('given_name')
log.info(f'Found one record. Event Presenter ID: {event_presenter_id_random} Event Presenter Given Name: {event_presenter_given_name}')
event_presenter_data['id'] = event_presenter_id event_presenter_data['id'] = event_presenter_id
log.debug(event_presenter_data) log.debug(event_presenter_data)
if allow_updates: if allow_updates:
if event_presenter_obj_up_result := sql_update(data=event_presenter_data, table_name='event_presenter'): if event_presenter_obj_up_result := sql_update(data=event_presenter_data, table_name='event_presenter'):
log.debug(event_presenter_obj_up_result) log.debug(event_presenter_obj_up_result)
else: else:
log.warning(event_presenter_obj_up_result) log.warning(event_presenter_obj_up_result)
pass # Probably nothing to update pass # Probably nothing to update
else: else:
log.info(f'No record found that needs to be updated. Creating a new event presenter. Event Presenter External ID: {event_presenter_external_id}') log.info(f'No record found that needs to be updated. Creating a new event presenter. Event Presenter External ID: {event_presenter_external_id}')
event_presenter_data['external_id'] = event_presenter_external_id # NOTE: This should never change event_presenter_data['external_id'] = event_presenter_external_id # NOTE: This should never change
log.debug(event_presenter_data) log.debug(event_presenter_data)
if allow_inserts:
if event_presenter_obj_in_result := sql_insert(data=event_presenter_data, table_name='event_presenter'):
log.debug(event_presenter_obj_in_result)
event_presenter_id = event_presenter_obj_in_result
else:
log.warning(event_presenter_obj_in_result)
continue # Something unexpected may have happened
if allow_inserts:
if event_presenter_obj_in_result := sql_insert(data=event_presenter_data, table_name='event_presenter'):
log.debug(event_presenter_obj_in_result)
event_presenter_id = event_presenter_obj_in_result
else:
log.warning(event_presenter_obj_in_result)
continue # Something unexpected may have happened
data['event_presenter_id'] = event_presenter_id data['event_presenter_id'] = event_presenter_id
data['event_presenter_code'] = event_presenter_code data['event_presenter_code'] = event_presenter_code
data['event_presenter_number'] = event_presenter_number data['event_presenter_number'] = event_presenter_number