Working on event person, registration, badge, session, presentation, and presenter create and update. _v3 things

This commit is contained in:
Scott Idem
2021-08-24 20:31:00 -04:00
parent 25ebdb6e76
commit 7859d1d2b2
12 changed files with 513 additions and 71 deletions

View File

@@ -16,7 +16,7 @@ from app.methods.event_badge_methods import load_event_badge_obj
# from app.methods.event_registration_methods import create_event_registration_obj, load_event_registration_obj, update_event_registration_obj_v3
# from app.methods.event_session_methods import load_event_session_obj
# from app.methods.event_track_methods import load_event_track_obj
from app.methods.person_methods import create_person_obj, load_person_obj, update_person_obj
from app.methods.person_methods import create_person_obj_v3, load_person_obj, update_person_obj
from app.methods.user_methods import create_user_obj, load_user_obj, update_user_obj
from app.models.event_person_models import Event_Person_New_Base, Event_Person_Base
@@ -184,11 +184,73 @@ def get_event_person_rec_list(
# ### END ### API Event Person Methods ### get_event_person_rec_list() ###
# ### BEGIN ### API Event Person Methods ### get_account_id_w_event_person_id() ###
# Updated 2021-08-24
def get_account_id_w_event_person_id(
event_person_id: int|str,
) -> bool|int|None:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
else: return False
data = {}
data['event_person_id'] = event_person_id
sql = f"""
SELECT `event_person`.id AS 'event_person_id', `event_person`.id_random AS 'event_person_id_random', `event_person`.account_id AS account_id
FROM `event_person` AS `event_person`
WHERE `event_person`.id = :event_person_id
LIMIT 1;
"""
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if event_person_data_result := sql_select(data=data, sql=sql):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_person_data_result)
if account_id := event_person_data_result.get('account_id', None): return account_id
else: return False
else: return None
# ### END ### API Event Person Methods ### get_account_id_w_event_person_id() ###
# ### BEGIN ### API Event Person Methods ### get_event_id_w_event_person_id() ###
# Updated 2021-08-24
def get_event_id_w_event_person_id(
event_person_id: int|str,
) -> bool|int|None:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
else: return False
data = {}
data['event_person_id'] = event_person_id
sql = f"""
SELECT `event_person`.id AS 'event_person_id', `event_person`.id_random AS 'event_person_id_random', `event_person`.event_id AS event_id
FROM `event_person` AS `event_person`
WHERE `event_person`.id = :event_person_id
LIMIT 1;
"""
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if event_person_data_result := sql_select(data=data, sql=sql):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_person_data_result)
if event_id := event_person_data_result.get('event_id', None): return event_id
else: return False
else: return None
# ### END ### API Event Person Methods ### get_event_id_w_event_person_id() ###
# ### BEGIN ### API Event Person Methods ### create_event_person_obj() ###
# NOTE: This will create an event_person. This event_person should include at least a person_id.
# NOTE: Is it a good idea to create and or update a person and or user here??? The create_event_person_obj() below does do that.
# NOTE NOTE NOTE NOTE: I don't like the idea of creating or updating person and or user here. It just does not seem right... Security risk? Complexity?
# Reviewed and updated 2021-08-10
# Updated 2021-08-24
def create_event_person_obj(
event_id: int|str,
event_person_obj_new: Event_Person_Base,
@@ -218,6 +280,7 @@ def create_event_person_obj(
return_dict['event_registration_id'] = None
if event_person_obj_new.event_badge and isinstance(event_person_obj_new.event_badge, dict):
log.info(f'Event Badge was found. Create a new Event Badge and link it to the new Event Person or update existing Event Badge. Event Person ID: {event_person_id}')
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
event_badge_obj_unknown = event_person_obj_new.event_badge
log.debug(event_badge_obj_unknown)
@@ -274,6 +337,7 @@ def create_event_person_obj(
pass
if event_person_obj_new.event_registration and isinstance(event_person_obj_new.event_registration, dict):
log.info(f'Event Registration was found. Create a new Event Registration and link it to the new Event Person or update existing Event Registration. Event Person ID: {event_person_id}')
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
event_registration_obj_unknown = event_person_obj_new.event_registration
log.debug(event_registration_obj_unknown)
@@ -341,13 +405,13 @@ def create_event_person_obj(
if event_person_obj_new.event_session and event_person_obj_new.poc_event_session_id: pass # POC for event session; could be more than one
if event_person_obj_new.event_registration and event_person_obj_new.poc_event_registration_id: pass # Primary registrant for registration; only one
log.info(f'The event person has been created. Event Person ID: {event_person_id}')
log.info(f'The Event Person has been created. Event Person ID: {event_person_id}')
return event_person_id
# ### END ### API Event Person Methods ### create_event_person_obj() ###
# ### BEGIN ### API Event Person Methods ### update_event_person_obj_v3() ###
# Updated 2021-08-21
# Updated 2021-08-24
def update_event_person_obj_v3(
event_person_id: int|str,
event_person_obj_exist: Event_Person_Base,
@@ -489,15 +553,13 @@ def update_event_person_obj_v3(
log.info('Event Registration not found or not in a dict.')
pass
log.info(f'The event person has been updated. Event Person ID: {event_person_id}')
log.info(f'The Event Person has been updated. Event Person ID: {event_person_id}')
return True
# ### END ### API Event Person Methods ### update_event_person_obj_v3() ###
# ### BEGIN ### API Event Person Methods ### update_event_person_obj() ###
# NOTE: This will update an event_person. This also tries to create or update a person or user if that data is passed.
# NOTE: Is it a good idea to create and or update a person and or user here???
@@ -515,6 +577,8 @@ def update_event_person_obj(
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
else: return False
account_id = get_account_id_w_event_person_id(event_person_id)
event_person_obj_up.id = event_person_id
log.debug(event_person_obj_up)
@@ -540,7 +604,7 @@ def update_event_person_obj(
# NOTE: This will blindly create a new person even if there was one associated but the event_person.person_id was not found.
person_obj_in = event_person_obj_up.person
log.debug(person_obj_in)
if person_obj_in_result := create_person_obj(person_obj_new=person_obj_in):
if person_obj_in_result := create_person_obj_v3(account_id=account_id, person_obj_new=person_obj_in):
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(person_obj_in_result)
event_person_obj_up.person_id = person_obj_in_result