General clean up. Work on importing AAPOR. Work on sessions, presentations, and presenters.

This commit is contained in:
Scott Idem
2022-04-12 04:08:52 -04:00
parent f15179fb02
commit 16fca4b2f0
8 changed files with 485 additions and 178 deletions

View File

@@ -388,6 +388,7 @@ origins = [
'http://idaa.oneskyit.local:5000', 'http://idaa.oneskyit.local:5000',
'http://ishlt.oneskyit.local:5000', 'http://ishlt.oneskyit.local:5000',
'http://businessgroup.oneskyit.local:5000', 'http://businessgroup.oneskyit.local:5000',
'http://aapor.oneskyit.local:5000',
'http://dev-ishlt.localhost:5000', # Using localhost 'http://dev-ishlt.localhost:5000', # Using localhost
'http://ishlt.localhost:5000', # Using localhost 'http://ishlt.localhost:5000', # Using localhost

View File

@@ -1,11 +1,10 @@
from __future__ import annotations
import datetime import datetime
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_update from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_update
from app.lib_general import log, logging from app.lib_general import log, logging, logger_reset
# from app.methods.event_methods import load_event_obj # from app.methods.event_methods import load_event_obj
# from app.methods.event_file_methods import load_event_file_obj # from app.methods.event_file_methods import load_event_file_obj
@@ -20,6 +19,7 @@ from app.models.event_presentation_models import Event_Presentation_Base
# ### BEGIN ### API Event Presentation Methods ### load_event_presentation_obj() ### # ### BEGIN ### API Event Presentation Methods ### load_event_presentation_obj() ###
@logger_reset
def load_event_presentation_obj( def load_event_presentation_obj(
event_presentation_id: int|str, event_presentation_id: int|str,
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
@@ -229,6 +229,7 @@ def load_event_presentation_obj(
# ### BEGIN ### API Event Presenter Methods ### get_event_presentation_rec_list() ### # ### BEGIN ### API Event Presenter Methods ### get_event_presentation_rec_list() ###
@logger_reset
def get_event_presentation_rec_list( def get_event_presentation_rec_list(
event_person_id: str = None, event_person_id: str = None,
event_session_id: str = None, event_session_id: str = None,
@@ -315,6 +316,7 @@ def get_event_presentation_rec_list(
# ### BEGIN ### API Event Presentation Methods ### get_event_id_w_event_session_id() ### # ### BEGIN ### API Event Presentation Methods ### get_event_id_w_event_session_id() ###
# Updated 2021-08-23 # Updated 2021-08-23
@logger_reset
def get_event_id_w_event_session_id( def get_event_id_w_event_session_id(
event_session_id: int|str, event_session_id: int|str,
) -> bool|int|None: ) -> bool|int|None:
@@ -347,6 +349,7 @@ def get_event_id_w_event_session_id(
# ### BEGIN ### API Event Presentation Methods ### create_update_event_presentation_obj_v4() ### # ### BEGIN ### API Event Presentation Methods ### create_update_event_presentation_obj_v4() ###
# NOTE: This will create or update a event_presentation. # NOTE: This will create or update a event_presentation.
# Rewrite and updated 2021-08-25 # Rewrite and updated 2021-08-25
@logger_reset
def create_update_event_presentation_obj_v4( def create_update_event_presentation_obj_v4(
event_presentation_dict_obj: Event_Presentation_Base|dict, event_presentation_dict_obj: Event_Presentation_Base|dict,
event_presentation_id: int|str = None, event_presentation_id: int|str = None,
@@ -485,7 +488,8 @@ def create_update_event_presentation_obj_v4(
# ### BEGIN ### API Event Presentation Methods ### create_event_presentation_obj() ### # ### BEGIN ### API Event Presentation Methods ### create_event_presentation_obj() ###
# Updated 2021-08-25 # Updated 2022-04-12
@logger_reset
def create_event_presentation_obj( def create_event_presentation_obj(
event_session_id: int|str, event_session_id: int|str,
event_presentation_obj_new: Event_Presentation_Base, event_presentation_obj_new: Event_Presentation_Base,
@@ -493,7 +497,7 @@ def create_event_presentation_obj(
create_sub_obj: bool = False, create_sub_obj: bool = False,
fail_any: bool = False, # Fail if any thing goes wrong for sub objects fail_any: bool = False, # Fail if any thing goes wrong for sub objects
) -> bool: ) -> bool:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
@@ -517,21 +521,25 @@ def create_event_presentation_obj(
log.debug(type(event_presentation_obj_new)) log.debug(type(event_presentation_obj_new))
if isinstance(event_presentation_obj_new, dict): if isinstance(event_presentation_obj_new, dict):
event_presentation_dict = event_presentation_obj_new
try: try:
event_presentation_obj_new = Event_Presentation_Base(**event_presentation_obj_new) event_presentation_obj = Event_Presentation_Base(**event_presentation_dict)
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_presentation_obj_new)
except ValidationError as e: except ValidationError as e:
log.error(e.json()) log.error(e.json())
return False return False
log.debug(event_presentation_obj)
else:
event_presentation_dict = event_presentation_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'})
event_presentation_obj_new.event_id = event_id event_presentation_dict['for_type'] = 'event_session'
event_presentation_obj_new.event_session_id = event_session_id event_presentation_dict['for_id'] = event_session_id
event_presentation_obj_data = event_presentation_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'}) event_presentation_dict['event_id'] = event_id
log.debug(event_presentation_obj_data) event_presentation_dict['event_session_id'] = event_session_id
if event_presentation_obj_in_result := sql_insert(data=event_presentation_obj_data, table_name='event_presentation', rm_id_random=True, id_random_length=8): pass log.debug(event_presentation_dict)
if event_presentation_obj_in_result := sql_insert(data=event_presentation_dict, table_name='event_presentation', rm_id_random=True, id_random_length=8): pass
else: else:
log.warning(f'Event Presentation not created.') log.warning(f'Event Presentation not created.')
log.debug(event_presentation_obj_in_result) log.debug(event_presentation_obj_in_result)
@@ -543,12 +551,12 @@ def create_event_presentation_obj(
return_dict['event_presentation_id'] = None return_dict['event_presentation_id'] = None
return_dict['event_presenter_list'] = [] return_dict['event_presenter_list'] = []
if event_presentation_obj_new.event_presenter_list and isinstance(event_presentation_obj_new.event_presenter_list, list): if event_presentation_obj.event_presenter_list and isinstance(event_presentation_obj.event_presenter_list, list):
for event_presenter_obj_new in event_presentation_obj_new.event_presenter_list: for event_presenter_obj in event_presentation_obj.event_presenter_list:
# NOTE: This does not account for an edge case where the presenter already exists. Possibly as part of another presentation. # NOTE: This does not account for an edge case where the presenter already exists. Possibly as part of another presentation.
if create_event_presenter_obj_result := create_event_presenter_obj( if create_event_presenter_obj_result := create_event_presenter_obj(
event_presentation_id = event_presentation_id, event_presentation_id = event_presentation_id,
event_presenter_obj_new = event_presenter_obj_new, event_presenter_obj_new = event_presenter_obj,
create_sub_obj = create_sub_obj, create_sub_obj = create_sub_obj,
fail_any = fail_any, fail_any = fail_any,
): ):
@@ -576,14 +584,16 @@ def create_event_presentation_obj(
# ### BEGIN ### API Event Presentation Methods ### update_event_presentation_obj_v3() ### # ### BEGIN ### API Event Presentation Methods ### update_event_presentation_obj_v3() ###
# Updated 2021-08-25 # Updated 2022-04-12
@logger_reset
def update_event_presentation_obj_v3( def update_event_presentation_obj_v3(
event_presentation_id: int|str, event_presentation_id: int|str,
event_presentation_obj_exist: Event_Presentation_Base, event_presentation_obj_exist: Event_Presentation_Base,
event_session_id: int = None,
create_sub_obj: bool = False, create_sub_obj: bool = False,
fail_any: bool = False, # Fail if any thing goes wrong for sub objects fail_any: bool = False, # Fail if any thing goes wrong for sub objects
) -> bool: ) -> bool:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if event_presentation_id := redis_lookup_id_random(record_id_random=event_presentation_id, table_name='event_presentation'): pass if event_presentation_id := redis_lookup_id_random(record_id_random=event_presentation_id, table_name='event_presentation'): pass
@@ -591,23 +601,32 @@ def update_event_presentation_obj_v3(
log.debug(type(event_presentation_obj_exist)) log.debug(type(event_presentation_obj_exist))
if isinstance(event_presentation_obj_exist, dict): if isinstance(event_presentation_obj_exist, dict):
event_presentation_dict = event_presentation_obj_exist
try: try:
event_presentation_obj_exist = Event_Presentation_Base(**event_presentation_obj_exist) event_presentation_obj = Event_Presentation_Base(**event_presentation_obj_exist)
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_presentation_obj_exist)
except ValidationError as e: except ValidationError as e:
log.error(e.json()) log.error(e.json())
return False return False
log.debug(event_presentation_obj)
else:
event_presentation_dict = event_presentation_obj_exist.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'})
# Can't update the event_presentation_id alias if the .id was never set. # Can't update the event_presentation_id alias if the .id was never set.
# event_presentation_obj_exist.event_presentation_id = event_presentation_id # event_presentation_obj.event_presentation_id = event_presentation_id
if not event_presentation_obj_exist.id: if not event_presentation_obj.id:
event_presentation_obj_exist.id = event_presentation_id event_presentation_obj.id = event_presentation_id
event_presentation_obj_data = event_presentation_obj_exist.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'}) log.debug(event_presentation_dict)
log.debug(event_presentation_obj_data)
if event_presentation_obj_up_result := sql_update(data=event_presentation_obj_data, table_name='event_presentation', rm_id_random=True): pass # event_presentation_dict['event_id'] = event_id
if event_session_id:
event_presentation_dict['for_type'] = 'event_session'
event_presentation_dict['for_id'] = event_session_id
event_presentation_dict['event_session_id'] = event_session_id
log.debug(event_presentation_dict)
if event_presentation_obj_up_result := sql_update(data=event_presentation_dict, table_name='event_presentation', record_id=event_presentation_id, rm_id_random=True): pass
else: else:
log.warning(f'Event Presentation not updated.') log.warning(f'Event Presentation not updated.')
log.debug(event_presentation_obj_up_result) log.debug(event_presentation_obj_up_result)
@@ -617,8 +636,8 @@ def update_event_presentation_obj_v3(
return_dict['event_presentation_id'] = event_presentation_id return_dict['event_presentation_id'] = event_presentation_id
return_dict['event_presenter_list'] = [] return_dict['event_presenter_list'] = []
if event_presentation_obj_exist.event_presenter_list and isinstance(event_presentation_obj_exist.event_presenter_list, list): if event_presentation_obj.event_presenter_list and isinstance(event_presentation_obj.event_presenter_list, list):
for event_presenter_obj_unknown in event_presentation_obj_exist.event_presenter_list: for event_presenter_obj_unknown in event_presentation_obj.event_presenter_list:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_presenter_obj_unknown) log.debug(event_presenter_obj_unknown)
if event_presenter_id := event_presenter_obj_unknown.get('event_presenter_id_random', None): if event_presenter_id := event_presenter_obj_unknown.get('event_presenter_id_random', None):
@@ -679,6 +698,8 @@ def update_event_presentation_obj_v3(
# ### BEGIN ### API Event Presentation Methods ### update_event_presentation_obj() ### # ### BEGIN ### API Event Presentation Methods ### update_event_presentation_obj() ###
# This will be taken over by _exist version # This will be taken over by _exist version
# Updated 2022-04-12
@logger_reset
def update_event_presentation_obj( def update_event_presentation_obj(
event_presentation_id: int|str, # Ideally the int ID should be passed. This allows for updating of the id_random value. event_presentation_id: int|str, # Ideally the int ID should be passed. This allows for updating of the id_random value.
event_presentation_obj_up: Event_Presentation_Base, event_presentation_obj_up: Event_Presentation_Base,

View File

@@ -1,11 +1,10 @@
from __future__ import annotations
import datetime import datetime
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_update from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_update
from app.lib_general import log, logging from app.lib_general import log, logging, logger_reset
from app.methods.event_cfg_methods import load_event_cfg_obj from app.methods.event_cfg_methods import load_event_cfg_obj
from app.methods.event_person_methods import create_event_person_obj, load_event_person_obj, update_event_person_obj from app.methods.event_person_methods import create_event_person_obj, load_event_person_obj, update_event_person_obj
@@ -16,6 +15,7 @@ from app.models.event_presenter_models import Event_Presenter_Base
# ### BEGIN ### API Event Presenter Methods ### load_event_presenter_obj() ### # ### BEGIN ### API Event Presenter Methods ### load_event_presenter_obj() ###
@logger_reset
def load_event_presenter_obj( def load_event_presenter_obj(
event_presenter_id: int|str, event_presenter_id: int|str,
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
@@ -201,6 +201,7 @@ def load_event_presenter_obj(
# ### BEGIN ### API Event Presenter Methods ### get_event_presenter_rec_list() ### # ### BEGIN ### API Event Presenter Methods ### get_event_presenter_rec_list() ###
@logger_reset
def get_event_presenter_rec_list( def get_event_presenter_rec_list(
event_person_id: str = None, event_person_id: str = None,
event_presentation_id: str = None, event_presentation_id: str = None,
@@ -281,6 +282,7 @@ def get_event_presenter_rec_list(
# ### BEGIN ### API Event Presenter Methods ### get_event_session_id_w_event_presentation_id() ### # ### BEGIN ### API Event Presenter Methods ### get_event_session_id_w_event_presentation_id() ###
# Updated 2021-08-23 # Updated 2021-08-23
@logger_reset
def get_event_session_id_w_event_presentation_id( def get_event_session_id_w_event_presentation_id(
event_presentation_id: int|str, event_presentation_id: int|str,
) -> bool|int|None: ) -> bool|int|None:
@@ -315,6 +317,7 @@ def get_event_session_id_w_event_presentation_id(
# ### BEGIN ### API Event Presenter Methods ### create_update_event_presenter_obj_v4() ### # ### BEGIN ### API Event Presenter Methods ### create_update_event_presenter_obj_v4() ###
# NOTE: This will create or update a event_presenter. # NOTE: This will create or update a event_presenter.
# Rewrite and updated 2021-08-25 # Rewrite and updated 2021-08-25
@logger_reset
def create_update_event_presenter_obj_v4( def create_update_event_presenter_obj_v4(
event_presenter_dict_obj: Event_Presenter_Base|dict, event_presenter_dict_obj: Event_Presenter_Base|dict,
event_presenter_id: int|str = None, event_presenter_id: int|str = None,
@@ -433,7 +436,8 @@ def create_update_event_presenter_obj_v4(
# ### BEGIN ### API Event Presenter Methods ### create_event_presenter_obj() ### # ### BEGIN ### API Event Presenter Methods ### create_event_presenter_obj() ###
# Updated 2021-08-25 # Updated 2022-04-12
@logger_reset
def create_event_presenter_obj( def create_event_presenter_obj(
event_presentation_id: int|str, event_presentation_id: int|str,
event_presenter_obj_new: Event_Presenter_Base, event_presenter_obj_new: Event_Presenter_Base,
@@ -442,7 +446,7 @@ def create_event_presenter_obj(
create_sub_obj: bool = False, create_sub_obj: bool = False,
fail_any: bool = False, # Fail if any thing goes wrong for sub objects fail_any: bool = False, # Fail if any thing goes wrong for sub objects
) -> bool: ) -> bool:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
@@ -466,22 +470,26 @@ def create_event_presenter_obj(
log.debug(type(event_presenter_obj_new)) log.debug(type(event_presenter_obj_new))
if isinstance(event_presenter_obj_new, dict): if isinstance(event_presenter_obj_new, dict):
event_presenter_dict = event_presenter_obj_new
try: try:
event_presenter_obj_new = Event_Presenter_Base(**event_presenter_obj_new) event_presenter_obj = Event_Presenter_Base(**event_presenter_obj_new)
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_presenter_obj_new)
except ValidationError as e: except ValidationError as e:
log.error(e.json()) log.error(e.json())
return False return False
log.debug(event_presenter_obj)
else:
event_presenter_dict = event_presenter_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'created_on', 'updated_on'})
event_presenter_obj_new.event_id = event_id event_presenter_dict['for_type'] = 'event_presentation'
event_presenter_obj_new.event_session_id = event_session_id event_presenter_dict['for_id'] = event_presentation_id
event_presenter_obj_new.event_presentation_id = event_presentation_id
event_presenter_obj_data = event_presenter_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'created_on', 'updated_on'}) event_presenter_dict['event_id'] = event_id
log.debug(event_presenter_obj_data) event_presenter_dict['event_session_id'] = event_session_id
event_presenter_dict['event_presentation_id'] = event_presentation_id
if event_presenter_obj_in_result := sql_insert(data=event_presenter_obj_data, table_name='event_presenter', rm_id_random=True, id_random_length=8): pass log.debug(event_presenter_dict)
if event_presenter_obj_in_result := sql_insert(data=event_presenter_dict, table_name='event_presenter', rm_id_random=True, id_random_length=8): pass
else: else:
log.warning(f'Event Presenter not created.') log.warning(f'Event Presenter not created.')
log.debug(event_presenter_obj_in_result) log.debug(event_presenter_obj_in_result)
@@ -498,14 +506,16 @@ def create_event_presenter_obj(
# ### BEGIN ### API Event Presenter Methods ### update_event_presenter_obj_v3() ### # ### BEGIN ### API Event Presenter Methods ### update_event_presenter_obj_v3() ###
# Updated 2021-08-21 # Updated 2022-04-12
@logger_reset
def update_event_presenter_obj_v3( def update_event_presenter_obj_v3(
event_presenter_id: int|str, event_presenter_id: int|str,
event_presenter_obj_exist: Event_Presenter_Base, event_presenter_obj_exist: Event_Presenter_Base,
event_presentation_id: int = None,
create_sub_obj: bool = False, create_sub_obj: bool = False,
fail_any: bool = False, # Fail if any thing goes wrong for sub objects fail_any: bool = False, # Fail if any thing goes wrong for sub objects
) -> bool: ) -> bool:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if event_presenter_id := redis_lookup_id_random(record_id_random=event_presenter_id, table_name='event_presenter'): pass if event_presenter_id := redis_lookup_id_random(record_id_random=event_presenter_id, table_name='event_presenter'): pass
@@ -513,23 +523,31 @@ def update_event_presenter_obj_v3(
log.debug(type(event_presenter_obj_exist)) log.debug(type(event_presenter_obj_exist))
if isinstance(event_presenter_obj_exist, dict): if isinstance(event_presenter_obj_exist, dict):
event_presenter_dict = event_presenter_obj_exist
try: try:
event_presenter_obj_exist = Event_Presenter_Base(**event_presenter_obj_exist) event_presenter_obj = Event_Presenter_Base(**event_presenter_obj_exist)
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_presenter_obj_exist)
except ValidationError as e: except ValidationError as e:
log.error(e.json()) log.error(e.json())
return False return False
log.debug(event_presenter_obj)
else:
event_presenter_dict = event_presenter_obj_exist.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'})
# Can't update the event_presenter_id alias if the .id was never set. # Can't update the event_presenter_id alias if the .id was never set.
# event_presenter_obj_exist.event_presenter_id = event_presenter_id # event_presenter_obj.event_presenter_id = event_presenter_id
if not event_presenter_obj_exist.id: if not event_presenter_obj.id:
event_presenter_obj_exist.id = event_presenter_id event_presenter_obj.id = event_presenter_id
event_presenter_obj_data = event_presenter_obj_exist.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'}) # event_presenter_dict['event_id'] = event_id
log.debug(event_presenter_obj_data) # event_presenter_dict['event_session_id'] = event_session_id
if event_presentation_id:
event_presenter_dict['for_type'] = 'event_presentation'
event_presenter_dict['for_id'] = event_presentation_id
event_presenter_dict['event_presentation_id'] = event_presentation_id
if event_presenter_obj_up_result := sql_update(data=event_presenter_obj_data, table_name='event_presenter', rm_id_random=True): pass log.debug(event_presenter_dict)
if event_presenter_obj_up_result := sql_update(data=event_presenter_dict, table_name='event_presenter', record_id=event_presenter_id, rm_id_random=True): pass
else: else:
log.warning(f'Event Presenter not updated.') log.warning(f'Event Presenter not updated.')
log.debug(event_presenter_obj_up_result) log.debug(event_presenter_obj_up_result)
@@ -547,6 +565,7 @@ def update_event_presenter_obj_v3(
# ### BEGIN ### API Event Presenter Methods ### update_event_presenter_obj() ### # ### BEGIN ### API Event Presenter Methods ### update_event_presenter_obj() ###
# This will be taken over by _exist version # This will be taken over by _exist version
@logger_reset
def update_event_presenter_obj( def update_event_presenter_obj(
event_presenter_id: int|str, # Ideally the int ID should be passed. This allows for updating of the id_random value. event_presenter_id: int|str, # Ideally the int ID should be passed. This allows for updating of the id_random value.
event_presenter_obj_up: Event_Presenter_Base, event_presenter_obj_up: Event_Presenter_Base,

View File

@@ -264,6 +264,7 @@ def load_event_session_obj(
# ### BEGIN ### API Event Session Methods ### get_event_session_rec_list() ### # ### BEGIN ### API Event Session Methods ### get_event_session_rec_list() ###
# Updated 2021-12-13 # Updated 2021-12-13
@logger_reset
def get_event_session_rec_list( def get_event_session_rec_list(
event_id: str = None, event_id: str = None,
event_location_id: str = None, event_location_id: str = None,
@@ -373,6 +374,7 @@ def get_event_session_rec_list(
# ### BEGIN ### API Event Session Methods ### create_update_event_session_obj_v4() ### # ### BEGIN ### API Event Session Methods ### create_update_event_session_obj_v4() ###
# NOTE: This will create or update a event_session. # NOTE: This will create or update a event_session.
# Rewrite and updated 2021-08-25 # Rewrite and updated 2021-08-25
@logger_reset
def create_update_event_session_obj_v4( def create_update_event_session_obj_v4(
event_session_dict_obj: Event_Session_Base|dict, event_session_dict_obj: Event_Session_Base|dict,
event_session_id: int|str = None, event_session_id: int|str = None,
@@ -502,14 +504,15 @@ def create_update_event_session_obj_v4(
# ### BEGIN ### API Event Session Methods ### create_event_session_obj() ### # ### BEGIN ### API Event Session Methods ### create_event_session_obj() ###
# Updated 2021-08-25 # Updated 2022-04-12
@logger_reset
def create_event_session_obj( def create_event_session_obj(
event_id: int|str, event_id: int|str,
event_session_obj_new: Event_Session_Base, event_session_obj_new: Event_Session_Base,
create_sub_obj: bool = False, create_sub_obj: bool = False,
fail_any: bool = False, # Fail if any thing goes wrong for sub objects fail_any: bool = False, # Fail if any thing goes wrong for sub objects
) -> bool: ) -> bool:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
@@ -517,18 +520,21 @@ def create_event_session_obj(
log.debug(type(event_session_obj_new)) log.debug(type(event_session_obj_new))
if isinstance(event_session_obj_new, dict): if isinstance(event_session_obj_new, dict):
event_session_dict = event_session_obj_new
try: try:
event_session_obj_new = Event_Session_Base(**event_session_obj_new) event_session_obj = Event_Session_Base(**event_session_dict)
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_session_obj_new)
except ValidationError as e: except ValidationError as e:
log.error(e.json()) log.error(e.json())
return False return False
log.debug(event_session_obj)
else:
event_session_dict = event_session_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presentation', 'event_presentation_list', 'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'})
event_session_obj_data = event_session_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presentation', 'event_presentation_list', 'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'}) event_session_dict['event_id'] = event_id
log.debug(event_session_obj_data)
if event_session_obj_in_result := sql_insert(data=event_session_obj_data, table_name='event_session', rm_id_random=True, id_random_length=8): pass log.debug(event_session_dict)
if event_session_obj_in_result := sql_insert(data=event_session_dict, table_name='event_session', rm_id_random=True, id_random_length=8): pass
else: else:
log.warning(f'Event Session not created.') log.warning(f'Event Session not created.')
log.debug(event_session_obj_in_result) log.debug(event_session_obj_in_result)
@@ -540,13 +546,13 @@ def create_event_session_obj(
return_dict['event_session_id'] = None return_dict['event_session_id'] = None
return_dict['event_presentation_list'] = [] return_dict['event_presentation_list'] = []
if event_session_obj_new.event_presentation_list and isinstance(event_session_obj_new.event_presentation_list, list): if event_session_dict.get('event_presentation_list') and isinstance(event_session_dict.get('event_presentation_list'), list):
log.info(f'Event Presentation List was found. Loop through and create a new Event Presentation for each and link them to the new Event Session. Event Session ID: {event_session_id}') log.info(f'Event Presentation List was found. Loop through and create a new Event Presentation for each and link them to the new Event Session. Event Session ID: {event_session_id}')
for event_presentation_obj_new in event_session_obj_new.event_presentation_list: for event_presentation_obj in event_session_dict.get('event_presentation_list'):
# NOTE: This does not account for an edge case where the presentation already exists. Possibly as part of another session. # NOTE: This does not account for an edge case where the presentation already exists. Possibly as part of another session.
if create_event_presentation_obj_result := create_event_presentation_obj( if create_event_presentation_obj_result := create_event_presentation_obj(
event_session_id = event_session_id, event_session_id = event_session_id,
event_presentation_obj_new = event_presentation_obj_new, event_presentation_obj_new = event_presentation_obj,
create_sub_obj = create_sub_obj, create_sub_obj = create_sub_obj,
fail_any = fail_any, fail_any = fail_any,
): ):
@@ -574,14 +580,15 @@ def create_event_session_obj(
# ### BEGIN ### API Event Session Methods ### update_event_session_obj_v3() ### # ### BEGIN ### API Event Session Methods ### update_event_session_obj_v3() ###
# Updated 2021-08-25 # Updated 2022-04-12
@logger_reset
def update_event_session_obj_v3( def update_event_session_obj_v3(
event_session_id: int|str, event_session_id: int|str,
event_session_obj_exist: Event_Session_Base, event_session_obj_exist: Event_Session_Base,
create_sub_obj: bool = False, create_sub_obj: bool = False,
fail_any: bool = False, # Fail if any thing goes wrong for sub objects fail_any: bool = False, # Fail if any thing goes wrong for sub objects
) -> bool: ) -> bool:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
@@ -589,23 +596,30 @@ def update_event_session_obj_v3(
log.debug(type(event_session_obj_exist)) log.debug(type(event_session_obj_exist))
if isinstance(event_session_obj_exist, dict): if isinstance(event_session_obj_exist, dict):
event_session_dict = event_session_obj_exist
try: try:
event_session_obj_exist = Event_Session_Base(**event_session_obj_exist) event_session_obj = Event_Session_Base(**event_session_obj_exist)
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_session_obj_exist)
except ValidationError as e: except ValidationError as e:
log.error(e.json()) log.error(e.json())
return False return False
log.debug(event_session_obj)
else:
event_session_dict = event_session_obj_exist.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presentation', 'event_presentation_list', 'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'})
# Can't update the event_session_id alias if the .id was never set. # Can't update the event_session_id alias if the .id was never set.
# event_session_obj_exist.event_session_id = event_session_id # event_session_obj.event_session_id = event_session_id
if not event_session_obj_exist.id: if not event_session_obj.id:
event_session_obj_exist.id = event_session_id event_session_obj.id = event_session_id
event_session_obj_data = event_session_obj_exist.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_presentation', 'event_presentation_list', 'event_presenter', 'event_presenter_list', 'created_on', 'updated_on'}) # event_presenter_dict['event_id'] = event_id
log.debug(event_session_obj_data) # if event_track_id:
# event_presenter_dict['for_type'] = 'event_track'
# event_presenter_dict['for_id'] = event_track_id
# event_presenter_dict['event_track_id'] = event_track_id
if event_session_obj_up_result := sql_update(data=event_session_obj_data, table_name='event_session', rm_id_random=True): pass log.debug(event_session_dict)
if event_session_obj_up_result := sql_update(data=event_session_dict, table_name='event_session', record_id=event_session_id, rm_id_random=True): pass
else: else:
log.warning(f'Event Session not updated.') log.warning(f'Event Session not updated.')
log.debug(event_session_obj_up_result) log.debug(event_session_obj_up_result)
@@ -615,8 +629,8 @@ def update_event_session_obj_v3(
return_dict['event_session_id'] = event_session_id return_dict['event_session_id'] = event_session_id
return_dict['event_presentation_list'] = [] return_dict['event_presentation_list'] = []
if event_session_obj_exist.event_presentation_list and isinstance(event_session_obj_exist.event_presentation_list, list): if event_session_obj.event_presentation_list and isinstance(event_session_obj.event_presentation_list, list):
for event_presentation_obj_unknown in event_session_obj_exist.event_presentation_list: for event_presentation_obj_unknown in event_session_obj.event_presentation_list:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_presentation_obj_unknown) log.debug(event_presentation_obj_unknown)
if event_presentation_id := event_presentation_obj_unknown.get('event_presentation_id_random', None): if event_presentation_id := event_presentation_obj_unknown.get('event_presentation_id_random', None):
@@ -677,6 +691,8 @@ def update_event_session_obj_v3(
# ### BEGIN ### API Event Session Methods ### update_event_session_obj() ### # ### BEGIN ### API Event Session Methods ### update_event_session_obj() ###
# This will be taken over by _exist version # This will be taken over by _exist version
# Updated 2022-04-12
@logger_reset
def update_event_session_obj( def update_event_session_obj(
event_session_id: int|str, # Ideally the int ID should be passed. This allows for updating of the id_random value. event_session_id: int|str, # Ideally the int ID should be passed. This allows for updating of the id_random value.
event_session_obj_up: Event_Session_Base, event_session_obj_up: Event_Session_Base,

View File

@@ -1,4 +1,3 @@
from __future__ import annotations
import datetime, hashlib, logging, os, pytz, redis, secrets import datetime, hashlib, logging, os, pytz, redis, secrets
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
@@ -110,48 +109,36 @@ class Event_Presentation_Base(BaseModel):
#@validator('event_presentation_id_random', always=True) #@validator('event_presentation_id_random', always=True)
def event_presentation_id_random_copy(cls, v, values, **kwargs): def event_presentation_id_random_copy(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
return None return None
@validator('id', always=True) @validator('id', always=True)
def event_presentation_id_lookup(cls, v, values, **kwargs): def event_presentation_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_presentation')
if values['id_random']:
log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='event_presentation')
return None return None
@validator('event_id', always=True) @validator('event_id', always=True)
def event_id_lookup(cls, v, values, **kwargs): def event_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event')
if values['event_id_random']:
return redis_lookup_id_random(record_id_random=values['event_id_random'], table_name='event')
return None return None
@validator('event_abstract_id', always=True) @validator('event_abstract_id', always=True)
def event_abstract_id_lookup(cls, v, values, **kwargs): def event_abstract_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_abstract_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_abstract')
if values['event_abstract_id_random']:
return redis_lookup_id_random(record_id_random=values['event_abstract_id_random'], table_name='event_abstract')
return None return None
@validator('event_session_id', always=True) @validator('event_session_id', always=True)
def event_session_id_lookup(cls, v, values, **kwargs): def event_session_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_session_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_session')
if values['event_session_id_random']:
return redis_lookup_id_random(record_id_random=values['event_session_id_random'], table_name='event_session')
return None return None
class Config: class Config:

View File

@@ -164,66 +164,50 @@ class Event_Presenter_Base(BaseModel):
#@validator('event_presenter_id_random', always=True) #@validator('event_presenter_id_random', always=True)
def event_presenter_id_random_copy(cls, v, values, **kwargs): def event_presenter_id_random_copy(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
return None return None
@validator('id', always=True) @validator('id', always=True)
def event_presenter_id_lookup(cls, v, values, **kwargs): def event_presenter_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_presenter')
if values['id_random']:
log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='event_presenter')
return None return None
@validator('account_id', always=True) @validator('account_id', always=True)
def account_id_lookup(cls, v, values, **kwargs): def account_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('account_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='account')
if values['account_id_random']:
return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account')
return None return None
@validator('event_id', always=True) @validator('event_id', always=True)
def event_id_lookup(cls, v, values, **kwargs): def event_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event')
if values['event_id_random']:
return redis_lookup_id_random(record_id_random=values['event_id_random'], table_name='event')
return None return None
@validator('event_person_id', always=True) @validator('event_person_id', always=True)
def event_person_id_lookup(cls, v, values, **kwargs): def event_person_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_person_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_person')
if values['event_person_id_random']:
return redis_lookup_id_random(record_id_random=values['event_person_id_random'], table_name='event_person')
return None return None
@validator('event_presentation_id', always=True) @validator('event_presentation_id', always=True)
def event_presentation_id_lookup(cls, v, values, **kwargs): def event_presentation_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_presentation_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_presentation')
if values['event_presentation_id_random']:
return redis_lookup_id_random(record_id_random=values['event_presentation_id_random'], table_name='event_presentation')
return None return None
@validator('event_session_id', always=True) @validator('event_session_id', always=True)
def event_session_id_lookup(cls, v, values, **kwargs): def event_session_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_session_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_session')
if values['event_session_id_random']:
return redis_lookup_id_random(record_id_random=values['event_session_id_random'], table_name='event_session')
return None return None
class Config: class Config:

View File

@@ -1,4 +1,3 @@
from __future__ import annotations
import datetime, hashlib, logging, os, pytz, redis, secrets import datetime, hashlib, logging, os, pytz, redis, secrets
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
@@ -141,53 +140,39 @@ class Event_Session_Base(BaseModel):
#@validator('event_session_id_random', always=True) #@validator('event_session_id_random', always=True)
def event_session_id_random_copy(cls, v, values, **kwargs): def event_session_id_random_copy(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['id_random']: if values['id_random']:
return values['id_random'] return values['id_random']
return None return None
@validator('id', always=True) @validator('id', always=True)
def event_session_id_lookup(cls, v, values, **kwargs): def event_session_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_session')
if values['id_random']:
log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='event_session')
return None return None
@validator('event_id', always=True) @validator('event_id', always=True)
def event_id_lookup(cls, v, values, **kwargs): def event_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event')
if values['event_id_random']:
return redis_lookup_id_random(record_id_random=values['event_id_random'], table_name='event')
return None return None
@validator('event_location_id', always=True) @validator('event_location_id', always=True)
def event_location_id_lookup(cls, v, values, **kwargs): def event_location_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_location_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_location')
if values.get('event_location_id_random', None):
return redis_lookup_id_random(record_id_random=values['event_location_id_random'], table_name='event_location')
return None return None
@validator('event_track_id', always=True) @validator('event_track_id', always=True)
def event_track_id_lookup(cls, v, values, **kwargs): def event_track_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) if isinstance(v, int) and v > 0: return v
log.debug(locals()) elif id_random := values.get('event_track_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_track')
if values['event_track_id_random']:
return redis_lookup_id_random(record_id_random=values['event_track_id_random'], table_name='event_track')
return None return None
class Config: class Config:
underscore_attrs_are_private = True underscore_attrs_are_private = True
allow_population_by_field_name = True allow_population_by_field_name = True
fields = base_fields fields = base_fields
#Event_Session_Base.update_forward_refs()

View File

@@ -1708,21 +1708,315 @@ async def bgh_program_import(
log.debug(create_update_event_session_obj_v4_result) log.debug(create_update_event_session_obj_v4_result)
session_dict_li.append(session_dict) session_dict_li.append(session_dict)
return mk_resp(data=session_dict_li, response=commons.response)
# try:
# event_session_obj = Event_Session_Base(**session_dict)
# log.debug(event_session_obj) # AAPOR program import
# except ValidationError as e: # Updated 2022-04-11
# log.error(e.json()) @router.get('/aapor_program_import', response_model=Resp_Body_Base)
# break async def aapor_program_import(
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL event_id: str = Query(..., min_length=11, max_length=22),
begin_at: int = 0,
# if event_session_dict_in_result := sql_insert(data=event_session_dict, table_name='event_session', rm_id_random=True, id_random_length=8): pass end_at: int = 50,
# else:
# log.warning(f'Event Session not created.') commons: Common_Route_Params = Depends(common_route_params),
# log.debug(event_session_dict_in_result) ):
# return False log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# log.debug(event_session_dict_in_result) log.debug(locals())
account_id = commons.x_account_id # 20 j5EBhRDqPuw
# AAPOR 2022: 1447 x2H2P2MYlXU
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
# elif event_exhibit_id is None: pass
else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Event ID was invalid or not found.')
# PART 0: Load the data
full_file_path = 'admin/temp/import_aapor_2022-04_program_data.csv'
df = pandas.read_csv(
full_file_path,
na_filter = False,
dtype = {
'presentation_code': str,
'presentation_title': str,
'presentation_code': str,
'presentation_start_datetime': str,
'presentation_end_datetime': str,
'presenter_number': str,
'presenter_given_name': str,
'presenter_family_name': str,
'session_code': str,
'Session Code': str,
'session_title': str,
'session_description': str,
'session_start_datetime': str,
'session_end_datetime': str,
'session_location': str,
'session_location_code': str,
},
parse_dates = ['session_start_datetime', 'session_end_datetime']
)
#df = df.fillna('') # replace NaN with ''
# df = df.fillna(None)
# df = df.fillna('', inplace=True)
#return str(df.info())
df.rename(columns={
'presenter_number': 'presenter_code',
'Presenter Number': 'presenter_code',
'Presenter Code': 'presenter_code',
'Presentation Code': 'presentation_code',
'presentation_title': 'presentation_name',
'given_name (first)': 'presenter_given_name',
'family_name (last)': 'presenter_family_name',
'Session Code': 'session_code',
'session_title': 'session_name',
'Session Title': 'session_name',
'session_location_code': 'location_code',
'session_location': 'location_name',
},
inplace = True)
log.debug(df)
# datetime.datetime.strptime(updated_on, '%d-%b-%Y')
df_dict = df.to_dict(orient='records')
# log.debug(df_dict)
from app.methods.event_session_methods import create_event_session_obj, create_update_event_session_obj_v4, load_event_session_obj, get_event_session_rec_list, update_event_session_obj_v3, update_event_session_obj
from app.methods.event_presentation_methods import create_event_presentation_obj, create_update_event_presentation_obj_v4, load_event_presentation_obj, get_event_presentation_rec_list, update_event_presentation_obj_v3, update_event_presentation_obj
from app.methods.event_presenter_methods import create_event_presenter_obj, create_update_event_presenter_obj_v4, load_event_presenter_obj, get_event_presenter_rec_list, update_event_presenter_obj_v3, update_event_presenter_obj
from app.models.event_session_models import Event_Session_Base
session_dict_li = []
# NOTE: I think I really like the way I did this loop counter and logging. -2022-04-14
loop_count = 0
for record in df_dict:
loop_count = loop_count + 1
if loop_count <= begin_at:
log.info(f'Skipping loop #{loop_count}')
continue
if loop_count > end_at:
log.info(f'Stopping at loop #{loop_count}')
break
else:
log.info(f'Starting loop #{loop_count}')
log.info('# PART 1: Process the session data')
session_data = {}
session_data['event_id'] = event_id
session_data['code'] = record.get('session_code')
session_data['name'] = record.get('session_name')
session_data['description'] = record.get('session_description')
session_data['start_datetime'] = record.get('session_start_datetime')
session_data['end_datetime'] = record.get('session_end_datetime')
location_name = record.get('location_name')
if location_name == 'Arkansas': session_data['event_location_id'] = 306
elif location_name == 'Colorado': session_data['event_location_id'] = 307
elif location_name == 'Erie': session_data['event_location_id'] = 308
elif location_name == 'Huron': session_data['event_location_id'] = 309
elif location_name == 'Michigan A': session_data['event_location_id'] = 310
elif location_name == 'Michigan B': session_data['event_location_id'] = 311
elif location_name == 'Mississippi': session_data['event_location_id'] = 312
elif location_name == 'Missouri': session_data['event_location_id'] = 313
elif location_name == 'Ontario': session_data['event_location_id'] = 314
elif location_name == 'Streeterville': session_data['event_location_id'] = 315
elif location_name == 'Superior A': session_data['event_location_id'] = 316
elif location_name == 'Superior B': session_data['event_location_id'] = 317
elif location_name == 'Wrigleyville': session_data['event_location_id'] = 318
session_data['enable'] = True
session_data['hide'] = False
log.debug(session_data)
data = {}
data['event_id'] = event_id
data['code'] = session_data['code']
sql = f"""
SELECT `event_session`.id AS 'event_session_id', `event_session`.id_random AS 'event_session_id_random'
FROM `event_session` AS `event_session`
WHERE
event_session.event_id = :event_id
AND event_session.code = :code
LIMIT 1;
"""
# log.debug(sql)
if event_session_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
log.info('Got a list result')
event_session_rec = event_session_rec_li_result[0]
log.debug(event_session_rec)
else: # [] or False
log.info('No results or something went wrong')
event_session_rec = None
log.debug(event_session_rec_li_result)
# log.error('Hit break point')
# break
event_session_id = None
if event_session_rec:
log.info('Found a record. Updating...')
event_session_id = event_session_rec.get('event_session_id')
if update_event_session_obj_result := update_event_session_obj_v3(
event_session_id = event_session_id,
event_session_obj_exist = session_data
): pass
else:
log.error('Something went wrong while trying to update an event session.')
# event_session_id = update_event_session_obj_result
break
log.debug(update_event_session_obj_result)
else:
log.info('No record found. Inserting...')
if create_event_session_obj_result := create_event_session_obj(
event_id = event_id,
event_session_obj_new = session_data
):
event_session_id = create_event_session_obj_result
else:
log.error('Something went wrong while trying to create a new event session.')
# event_session_id = create_event_session_obj_result
break
log.debug(create_event_session_obj_result)
# log.error('Hit continue to next loop point')
# continue
# log.error('Hit break point')
# break
log.info('# PART 2: Process the presentation data')
presentation_data = {}
presentation_data['for_type'] = 'event_session'
presentation_data['for_id'] = event_session_id
presentation_data['event_session_id'] = event_session_id
presentation_data['code'] = record.get('presentation_code')
presentation_data['name'] = record.get('presentation_name')
presentation_data['description'] = record.get('presentation_description')
presentation_data['start_datetime'] = record.get('presentation_start_datetime')
presentation_data['end_datetime'] = record.get('presentation_end_datetime')
presentation_data['enable'] = True
session_data['hide'] = False
log.debug(presentation_data)
data = {}
data['event_session_id'] = event_session_id
data['code'] = presentation_data['code']
sql = f"""
SELECT `event_presentation`.id AS 'event_presentation_id', `event_presentation`.id_random AS 'event_presentation_id_random'
FROM `event_presentation` AS `event_presentation`
WHERE
event_presentation.event_session_id = :event_session_id
AND event_presentation.code = :code
LIMIT 1;
"""
log.debug(sql)
if event_presentation_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
log.info('Got a list result')
event_presentation_rec = event_presentation_rec_li_result[0]
else: # [] or False
log.info('No results or something went wrong')
event_presentation_rec = None
log.debug(event_presentation_rec_li_result)
event_presentation_id = None
if event_presentation_rec:
log.info('Found a record. Updating...')
event_presentation_id = event_presentation_rec.get('event_presentation_id')
if update_event_presentation_obj_result := update_event_presentation_obj_v3(
event_presentation_id = event_presentation_id,
event_presentation_obj_exist = presentation_data,
event_session_id = event_session_id,
): pass
else:
log.error('Something went wrong while trying to update an event presentation.')
# event_presentation_id = update_event_presentation_obj_result
break
log.debug(update_event_presentation_obj_result)
else:
log.info('No record found. Inserting...')
if create_event_presentation_obj_result := create_event_presentation_obj(
event_session_id = event_session_id,
event_presentation_obj_new = presentation_data
):
event_presentation_id = create_event_presentation_obj_result
else:
log.error('Something went wrong while trying to create a new event presentation.')
# event_presentation_id = create_event_presentation_obj_result
break
log.debug(create_event_presentation_obj_result)
# log.error('Hit continue to next loop point')
# continue
# log.error('Hit break point')
# break
log.info('# PART 3: Process the presenter data')
presenter_data = {}
presenter_data['for_type'] = 'event_presentation'
presenter_data['for_id'] = event_presentation_id
presenter_data['event_session_id'] = event_session_id
presenter_data['event_presentation_id'] = event_presentation_id
presenter_data['code'] = record.get('presenter_code')
presenter_data['given_name'] = record.get('presenter_given_name')
presenter_data['family_name'] = record.get('presenter_family_name')
presenter_data['sort'] = record.get('presenter_code') # Using the code as the sort as well
presenter_data['enable'] = True
presenter_data['hide'] = False
log.debug(presenter_data)
data = {}
data['event_presentation_id'] = event_presentation_id
data['code'] = presenter_data['code']
sql = f"""
SELECT `event_presenter`.id AS 'event_presenter_id', `event_presenter`.id_random AS 'event_presenter_id_random'
FROM `event_presenter` AS `event_presenter`
WHERE
event_presenter.event_presentation_id = :event_presentation_id
AND event_presenter.code = :code
LIMIT 1;
"""
log.debug(sql)
if event_presenter_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
log.info('Got a list result')
event_presenter_rec = event_presenter_rec_li_result[0]
else: # [] or False
log.info('No results or something went wrong')
event_presenter_rec = None
log.debug(event_presenter_rec_li_result)
event_presenter_id = None
if event_presenter_rec:
log.info('Found a record. Updating...')
event_presenter_id = event_presenter_rec.get('event_presenter_id')
if update_event_presenter_obj_result := update_event_presenter_obj_v3(
event_presenter_id = event_presenter_id,
event_presenter_obj_exist = presenter_data,
event_presentation_id = event_presentation_id,
): pass
else:
log.error('Something went wrong while trying to update an event presenter.')
# event_presenter_id = update_event_presenter_obj_result
break
log.debug(update_event_presenter_obj_result)
else:
log.info('No record found. Inserting...')
if create_event_presenter_obj_result := create_event_presenter_obj(
event_presentation_id = event_presentation_id,
event_presenter_obj_new = presenter_data
):
event_presenter_id = create_event_presenter_obj_result
else:
log.error('Something went wrong while trying to create a new event presenter.')
# event_presenter_id = create_event_presenter_obj_result
break
log.debug(create_event_presenter_obj_result)
# log.error('Hit break point')
# break
return mk_resp(data=session_dict_li, response=commons.response) return mk_resp(data=session_dict_li, response=commons.response)