diff --git a/app/methods/event_methods.py b/app/methods/event_methods.py index fa1dd6a..ff32a22 100644 --- a/app/methods/event_methods.py +++ b/app/methods/event_methods.py @@ -8,8 +8,8 @@ from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_updat from app.lib_general import log, logging from app.methods.event_session_methods import load_event_session_obj -from app.methods.person_methods import load_person_obj -from app.methods.user_methods import load_user_obj +from app.methods.person_methods import create_person_obj, 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_models import Event_Base, Event_Cfg_Base @@ -192,4 +192,90 @@ def load_event_cfg_obj( else: return False return event_cfg_obj -# ### END ### API Event Methods ### load_event_cfg_obj() ### \ No newline at end of file +# ### END ### API Event Methods ### load_event_cfg_obj() ### + + +# ### BEGIN ### API Event Methods ### update_event_obj() ### +def update_event_obj( + event_id: int|str, # Ideally the int ID should be passed. This allows for updating of the id_random value. + event_obj_up: Event_Base, + create_missing_obj: bool = False, + ) -> bool: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass + else: return False + + event_obj_up.id = event_id + + log.debug(event_obj_up) + # log.debug(event_obj_up.dict(by_alias=True, exclude_unset=True)) + log.debug(event_obj_up.dict(by_alias=False, exclude_unset=True)) + # log.debug(event_obj_up.dict(by_alias=False, exclude_unset=False)) + + if event_obj_up.poc_person_id and event_obj_up.poc_person: + poc_person_id = event_obj_up.poc_person_id + poc_person_obj_up = event_obj_up.poc_person + log.debug(poc_person_id) + log.debug(poc_person_obj_up) + if poc_person_obj_up_result := update_person_obj( + poc_person_id=poc_person_id, + poc_person_obj_up=poc_person_obj_up, + create_missing_obj=create_missing_obj, + ): + log.debug(poc_person_obj_up_result) + else: + log.debug(poc_person_obj_up_result) + return False + elif event_obj_up.poc_person and not event_obj_up.poc_person.id: + # NOTE: This will blindly create a new person even if there was one associated but the event.poc_person_id was not found. + poc_person_obj_in = event_obj_up.poc_person + log.debug(poc_person_obj_in) + if poc_person_obj_in_result := create_person_obj(person_obj_new=poc_person_obj_in): + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(poc_person_obj_in_result) + event_obj_up.poc_person_id = poc_person_obj_in_result + else: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(poc_person_obj_in_result) + return False + + if event_obj_up.user_id and event_obj_up.user: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + user_id = event_obj_up.user_id + user_obj_up = event_obj_up.user + log.debug(user_id) + log.debug(user_obj_up) + if user_obj_up_result := update_user_obj( + user_id=user_id, + user_obj_up=user_obj_up, + create_missing_obj=create_missing_obj, + ): + log.debug(user_obj_up_result) + else: + log.debug(user_obj_up_result) + return False + elif event_obj_up.user and not event_obj_up.user.id: + # NOTE: This will blindly create a new user even if there was one associated but the event.user_id was not found. + user_obj_in = event_obj_up.user + log.debug(user_obj_in) + if user_obj_in_result := create_user_obj(user_obj_new=user_obj_in): + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(user_obj_in_result) + event_obj_up.user_id = user_obj_in_result + else: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(user_obj_in_result) + return False + + event_dict_up = event_obj_up.dict(by_alias=False, exclude_unset=True, exclude={'event_abstract_list', 'event_badge', 'event_exhibit_list', 'event_file_list', 'event_location_list', 'event_presentation_list', 'event_presenter_list', 'event_registration', 'event_session', 'event_track', 'person', 'user'}) + log.debug(event_dict_up) + + if event_obj_up_result := sql_update(data=event_dict_up, table_name='event', rm_id_random=True): + log.debug(event_obj_up_result) + return True + else: + log.debug(event_obj_up_result) + return False +# ### END ### API Event Methods ### update_event_obj() ### diff --git a/app/methods/event_person_methods.py b/app/methods/event_person_methods.py index 05a30e1..2f652cd 100644 --- a/app/methods/event_person_methods.py +++ b/app/methods/event_person_methods.py @@ -16,8 +16,8 @@ from app.lib_general import log, logging # from app.methods.event_registration_methods import load_event_registration_obj # 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 load_person_obj -from app.methods.user_methods import load_user_obj +from app.methods.person_methods import create_person_obj, 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 @@ -129,4 +129,90 @@ def load_event_person_obj( event_person_obj.user = None return event_person_obj -# ### END ### API Event Person Methods ### load_event_person_obj() ### \ No newline at end of file +# ### END ### API Event Person Methods ### load_event_person_obj() ### + + +# ### BEGIN ### API Event Person Methods ### update_event_person_obj() ### +def update_event_person_obj( + event_person_id: int|str, # Ideally the int ID should be passed. This allows for updating of the id_random value. + event_person_obj_up: Event_Person_Base, + create_missing_obj: bool = False, + ) -> bool: + log.setLevel(logging.DEBUG) # 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 + + event_person_obj_up.id = event_person_id + + log.debug(event_person_obj_up) + # log.debug(event_person_obj_up.dict(by_alias=True, exclude_unset=True)) + log.debug(event_person_obj_up.dict(by_alias=False, exclude_unset=True)) + # log.debug(event_person_obj_up.dict(by_alias=False, exclude_unset=False)) + + if event_person_obj_up.person_id and event_person_obj_up.person: + person_id = event_person_obj_up.person_id + person_obj_up = event_person_obj_up.person + log.debug(person_id) + log.debug(person_obj_up) + if person_obj_up_result := update_person_obj( + person_id=person_id, + person_obj_up=person_obj_up, + create_missing_obj=create_missing_obj, + ): + log.debug(person_obj_up_result) + else: + log.debug(person_obj_up_result) + return False + elif event_person_obj_up.person and not event_person_obj_up.person.id: + # 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): + # 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 + else: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(person_obj_in_result) + return False + + if event_person_obj_up.user_id and event_person_obj_up.user: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + user_id = event_person_obj_up.user_id + user_obj_up = event_person_obj_up.user + log.debug(user_id) + log.debug(user_obj_up) + if user_obj_up_result := update_user_obj( + user_id=user_id, + user_obj_up=user_obj_up, + create_missing_obj=create_missing_obj, + ): + log.debug(user_obj_up_result) + else: + log.debug(user_obj_up_result) + return False + elif event_person_obj_up.user and not event_person_obj_up.user.id: + # NOTE: This will blindly create a new user even if there was one associated but the event_person.user_id was not found. + user_obj_in = event_person_obj_up.user + log.debug(user_obj_in) + if user_obj_in_result := create_user_obj(user_obj_new=user_obj_in): + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(user_obj_in_result) + event_person_obj_up.user_id = user_obj_in_result + else: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(user_obj_in_result) + return False + + event_person_dict_up = event_person_obj_up.dict(by_alias=False, exclude_unset=True, exclude={'event_abstract_list', 'event_badge', 'event_exhibit_list', 'event_file_list', 'event_location_list', 'event_presentation_list', 'event_presenter_list', 'event_registration', 'event_session', 'event_track', 'person', 'user'}) + log.debug(event_person_dict_up) + + if event_person_obj_up_result := sql_update(data=event_person_dict_up, table_name='event_person', rm_id_random=True): + log.debug(event_person_obj_up_result) + return True + else: + log.debug(event_person_obj_up_result) + return False +# ### END ### API Event Person Methods ### update_event_person_obj() ### diff --git a/app/methods/event_presentation_methods.py b/app/methods/event_presentation_methods.py index 51f6fed..302691c 100644 --- a/app/methods/event_presentation_methods.py +++ b/app/methods/event_presentation_methods.py @@ -12,6 +12,7 @@ from app.lib_general import log, logging # from app.methods.event_location_methods import load_event_location_obj # from app.methods.event_presentation_methods import load_event_presentation_obj from app.methods.event_presenter_methods import load_event_presenter_obj +# from app.methods.event_session_methods import create_event_session_obj, load_event_session_obj, update_event_session_obj # from app.methods.person_methods import load_person_obj # from app.methods.user_methods import load_user_obj @@ -137,4 +138,63 @@ def load_event_presentation_obj( else: return False - return event_presentation_obj \ No newline at end of file + return event_presentation_obj + + +# ### BEGIN ### API Event Presentation Methods ### 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_obj_up: Event_Presentation_Base, + create_missing_obj: bool = False, + ) -> bool: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if event_presentation_id := redis_lookup_id_random(record_id_random=event_presentation_id, table_name='event_presentation'): pass + else: return False + + event_presentation_obj_up.id = event_presentation_id + + log.debug(event_presentation_obj_up) + # log.debug(event_presentation_obj_up.dict(by_alias=True, exclude_unset=True)) + log.debug(event_presentation_obj_up.dict(by_alias=False, exclude_unset=True)) + # log.debug(event_presentation_obj_up.dict(by_alias=False, exclude_unset=False)) + + # if event_presentation_obj_up.event_session_id and event_presentation_obj_up.event_session: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # event_session_id = event_presentation_obj_up.event_session_id + # event_session_obj_up = event_presentation_obj_up.event_session + # log.debug(event_session_id) + # log.debug(event_session_obj_up) + # if event_session_obj_up_result := update_event_session_obj( + # event_session_id=event_session_id, + # event_session_obj_up=event_session_obj_up, + # create_missing_obj=create_missing_obj, + # ): + # log.debug(event_session_obj_up_result) + # else: + # log.debug(event_session_obj_up_result) + # return False + # elif event_presentation_obj_up.event_session and not event_presentation_obj_up.event_session.id: + # # NOTE: This will blindly create a new event_session even if there was one associated but the event_presentation.event_session_id was not found. + # event_session_obj_in = event_presentation_obj_up.event_session + # log.debug(event_session_obj_in) + # if event_session_obj_in_result := create_event_session_obj(event_session_obj_new=event_session_obj_in): + # # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # log.debug(event_session_obj_in_result) + # event_presentation_obj_up.event_session_id = event_session_obj_in_result + # else: + # # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # log.debug(event_session_obj_in_result) + # return False + + event_presentation_dict_up = event_presentation_obj_up.dict(by_alias=False, exclude_unset=True, exclude={'event_abstract', 'event_abstract_list', 'event_file_list', 'event_location', 'event_presenter_list', 'event_session', 'event_track'}) + log.debug(event_presentation_dict_up) + + if event_presentation_obj_up_result := sql_update(data=event_presentation_dict_up, table_name='event_presentation', rm_id_random=True): + log.debug(event_presentation_obj_up_result) + return True + else: + log.debug(event_presentation_obj_up_result) + return False +# ### END ### API Presentation Methods ### update_event_presentation_obj() ### diff --git a/app/methods/event_presenter_methods.py b/app/methods/event_presenter_methods.py index db5923c..6f70c48 100644 --- a/app/methods/event_presenter_methods.py +++ b/app/methods/event_presenter_methods.py @@ -8,8 +8,9 @@ from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_updat from app.lib_general import log, logging # from app.methods.event_file_methods import load_event_file_obj -from app.methods.event_person_methods import load_event_person_obj -# from app.methods.event_presenter_methods import load_event_presenter_obj +from app.methods.event_person_methods import create_event_person_obj, load_event_person_obj, update_event_person_obj +# from app.methods.event_presentation_methods import create_event_presentation_obj, update_event_presentation_obj +# from app.methods.event_session_methods import create_event_session_obj, load_event_session_obj, update_event_session_obj # from app.methods.person_methods import load_person_obj # from app.methods.user_methods import load_user_obj @@ -106,4 +107,120 @@ def load_event_presenter_obj( else: return False - return event_presenter_obj \ No newline at end of file + return event_presenter_obj +# ### END ### API Event Presenter Methods ### load_event_presenter_obj() ### + + +# ### BEGIN ### API Event Presenter Methods ### 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_obj_up: Event_Presenter_Base, + create_missing_obj: bool = False, + ) -> bool: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if event_presenter_id := redis_lookup_id_random(record_id_random=event_presenter_id, table_name='event_presenter'): pass + else: return False + + event_presenter_obj_up.id = event_presenter_id + + log.debug(event_presenter_obj_up) + # log.debug(event_presenter_obj_up.dict(by_alias=True, exclude_unset=True)) + log.debug(event_presenter_obj_up.dict(by_alias=False, exclude_unset=True)) + # log.debug(event_presenter_obj_up.dict(by_alias=False, exclude_unset=False)) + + if event_presenter_obj_up.event_person_id and event_presenter_obj_up.event_person: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + event_person_id = event_presenter_obj_up.event_person_id + event_person_obj_up = event_presenter_obj_up.event_person + log.debug(event_person_id) + log.debug(event_person_obj_up) + if event_person_obj_up_result := update_event_person_obj( + event_person_id=event_person_id, + event_person_obj_up=event_person_obj_up, + create_missing_obj=create_missing_obj, + ): + log.debug(event_person_obj_up_result) + else: + log.debug(event_person_obj_up_result) + return False + elif event_presenter_obj_up.event_person and not event_presenter_obj_up.event_person.id: + # NOTE: This will blindly create a new event_person even if there was one associated but the event_presenter.event_person_id was not found. + event_person_obj_in = event_presenter_obj_up.event_person + log.debug(event_person_obj_in) + if event_person_obj_in_result := create_event_person_obj(event_person_obj_new=event_person_obj_in): + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_person_obj_in_result) + event_presenter_obj_up.event_person_id = event_person_obj_in_result + else: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_person_obj_in_result) + return False + + # if event_presenter_obj_up.event_presentation_id and event_presenter_obj_up.event_presentation: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # event_presentation_id = event_presenter_obj_up.event_presentation_id + # event_presentation_obj_up = event_presenter_obj_up.event_presentation + # log.debug(event_presentation_id) + # log.debug(event_presentation_obj_up) + # if event_presentation_obj_up_result := update_event_presentation_obj( + # event_presentation_id=event_presentation_id, + # event_presentation_obj_up=event_presentation_obj_up, + # create_missing_obj=create_missing_obj, + # ): + # log.debug(event_presentation_obj_up_result) + # else: + # log.debug(event_presentation_obj_up_result) + # return False + # elif event_presenter_obj_up.event_presentation and not event_presenter_obj_up.event_presentation.id: + # # NOTE: This will blindly create a new event_presentation even if there was one associated but the event_presenter.event_presentation_id was not found. + # event_presentation_obj_in = event_presenter_obj_up.event_presentation + # log.debug(event_presentation_obj_in) + # if event_presentation_obj_in_result := create_event_presentation_obj(event_presentation_obj_new=event_presentation_obj_in): + # # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # log.debug(event_presentation_obj_in_result) + # event_presenter_obj_up.event_presentation_id = event_presentation_obj_in_result + # else: + # # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # log.debug(event_presentation_obj_in_result) + # return False + + # if event_presenter_obj_up.event_session_id and event_presenter_obj_up.event_session: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # event_session_id = event_presenter_obj_up.event_session_id + # event_session_obj_up = event_presenter_obj_up.event_session + # log.debug(event_session_id) + # log.debug(event_session_obj_up) + # if event_session_obj_up_result := update_event_session_obj( + # event_session_id=event_session_id, + # event_session_obj_up=event_session_obj_up, + # create_missing_obj=create_missing_obj, + # ): + # log.debug(event_session_obj_up_result) + # else: + # log.debug(event_session_obj_up_result) + # return False + # elif event_presenter_obj_up.event_session and not event_presenter_obj_up.event_session.id: + # # NOTE: This will blindly create a new event_session even if there was one associated but the event_presenter.event_session_id was not found. + # event_session_obj_in = event_presenter_obj_up.event_session + # log.debug(event_session_obj_in) + # if event_session_obj_in_result := create_event_session_obj(event_session_obj_new=event_session_obj_in): + # # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # log.debug(event_session_obj_in_result) + # event_presenter_obj_up.event_session_id = event_session_obj_in_result + # else: + # # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + # log.debug(event_session_obj_in_result) + # return False + + event_presenter_dict_up = event_presenter_obj_up.dict(by_alias=False, exclude_unset=True, exclude={'event_abstract', 'event_abstract_list', 'event_file_list', 'event_person', 'event_presentation', 'event_session', 'person', 'user'}) + log.debug(event_presenter_dict_up) + + if event_presenter_obj_up_result := sql_update(data=event_presenter_dict_up, table_name='event_presenter', rm_id_random=True): + log.debug(event_presenter_obj_up_result) + return True + else: + log.debug(event_presenter_obj_up_result) + return False +# ### END ### API Presenter Methods ### update_event_presenter_obj() ### diff --git a/app/methods/event_session_methods.py b/app/methods/event_session_methods.py index 3f15d15..5464cf4 100644 --- a/app/methods/event_session_methods.py +++ b/app/methods/event_session_methods.py @@ -10,7 +10,7 @@ from app.lib_general import log, logging # from app.methods.event_methods import load_event_obj # from app.methods.event_file_methods import load_event_file_obj from app.methods.event_location_methods import load_event_location_obj -from app.methods.event_person_methods import load_event_person_obj +from app.methods.event_person_methods import load_event_person_obj, update_event_person_obj from app.methods.event_presentation_methods import load_event_presentation_obj # from app.methods.event_presenter_methods import load_event_presenter_obj from app.methods.person_methods import load_person_obj @@ -181,4 +181,93 @@ def load_event_session_obj( event_session_obj.poc_event_person = poc_event_person_obj log.debug(event_session_obj) - return event_session_obj \ No newline at end of file + return event_session_obj + + +# ### BEGIN ### API Event Session Methods ### 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_obj_up: Event_Session_Base, + create_missing_obj: bool = False, + ) -> bool: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass + else: return False + + event_session_obj_up.id = event_session_id + + log.debug(event_session_obj_up) + # log.debug(event_session_obj_up.dict(by_alias=True, exclude_unset=True)) + log.debug(event_session_obj_up.dict(by_alias=False, exclude_unset=True)) + # log.debug(event_session_obj_up.dict(by_alias=False, exclude_unset=False)) + + if event_session_obj_up.poc_event_person_id and event_session_obj_up.poc_event_person: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + poc_event_person_id = event_session_obj_up.poc_event_person_id + poc_event_person_obj_up = event_session_obj_up.poc_event_person + log.debug(poc_event_person_id) + log.debug(poc_event_person_obj_up) + if poc_event_person_obj_up_result := update_event_person_obj( + event_person_id=poc_event_person_id, + event_person_obj_up=poc_event_person_obj_up, + create_missing_obj=create_missing_obj, + ): + log.debug(poc_event_person_obj_up_result) + else: + log.debug(poc_event_person_obj_up_result) + return False + elif event_session_obj_up.poc_event_person and not event_session_obj_up.poc_event_person.id: + # NOTE: This will blindly create a new poc_event_person even if there was one associated but the event_session.poc_event_person_id was not found. + poc_event_person_obj_in = event_session_obj_up.poc_event_person + log.debug(poc_event_person_obj_in) + if poc_event_person_obj_in_result := create_event_person_obj(poc_event_person_idevent_person_obj_new=poc_event_person_obj_in): + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(poc_event_person_obj_in_result) + event_session_obj_up.poc_event_person_id = poc_event_person_obj_in_result + else: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(poc_event_person_obj_in_result) + return False + + if event_session_obj_up.event_presentation_id and event_session_obj_up.event_presentation: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + event_presentation_id = event_session_obj_up.event_presentation_id + event_presentation_obj_up = event_session_obj_up.event_presentation + log.debug(event_presentation_id) + log.debug(event_presentation_obj_up) + if event_presentation_obj_up_result := update_event_presentation_obj( + event_presentation_id=event_presentation_id, + event_presentation_obj_up=event_presentation_obj_up, + create_missing_obj=create_missing_obj, + ): + log.debug(event_presentation_obj_up_result) + else: + log.debug(event_presentation_obj_up_result) + return False + elif event_session_obj_up.event_presentation and not event_session_obj_up.event_presentation.id: + # NOTE: This will blindly create a new event_presentation even if there was one associated but the event_session.event_presentation_id was not found. + event_presentation_obj_in = event_session_obj_up.event_presentation + log.debug(event_presentation_obj_in) + if event_presentation_obj_in_result := create_event_presentation_obj(event_presentation_obj_new=event_presentation_obj_in): + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_presentation_obj_in_result) + event_session_obj_up.event_presentation_id = event_presentation_obj_in_result + else: + # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_presentation_obj_in_result) + return False + + + + event_session_dict_up = event_session_obj_up.dict(by_alias=False, exclude_unset=True, exclude={'event_abstract', 'event_abstract_list', 'event_file_list', 'event_person', 'event_presentation', 'event_session', 'person', 'user'}) + log.debug(event_session_dict_up) + + if event_session_obj_up_result := sql_update(data=event_session_dict_up, table_name='event_session', rm_id_random=True): + log.debug(event_session_obj_up_result) + return True + else: + log.debug(event_session_obj_up_result) + return False +# ### END ### API Session Methods ### update_event_session_obj() ### diff --git a/app/models/contact_models.py b/app/models/contact_models.py index e86335e..f7c80be 100644 --- a/app/models/contact_models.py +++ b/app/models/contact_models.py @@ -66,12 +66,13 @@ class Contact_Base(BaseModel): sort: Optional[int] group: Optional[str] - #account: Optional[Account_Base] = Account_Base() - address: Optional[Address_Base] = Address_Base() - created_on: Optional[datetime.datetime] = None updated_on: Optional[datetime.datetime] = None + # Including other related objects + #account: Optional[Account_Base] + address: Optional[Address_Base] + _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) #@validator('contact_id_random', always=True) diff --git a/app/models/event_presentation_models.py b/app/models/event_presentation_models.py index d225667..f49c9e8 100644 --- a/app/models/event_presentation_models.py +++ b/app/models/event_presentation_models.py @@ -75,8 +75,8 @@ class Event_Presentation_Base(BaseModel): event_abstract_list: Optional[list] # Optional[Event_Abstract_Base] Is more than one abstract allowed per presenter? #event_device_list: Optional[list] # Optional[Event_Device_Base] event_file_list: Optional[list] # Optional[Event_File_Base] - event_presenter_list: Optional[list] # Optional[Event_Presenter_Base] #event_location: Optional[Event_Location_Base] + event_presenter_list: Optional[list] # Optional[Event_Presenter_Base] event_session: Optional[Event_Session_Base] #event_track: Optional[Event_Track_Base] diff --git a/app/models/organization_models.py b/app/models/organization_models.py index cd87e48..d4a0aee 100644 --- a/app/models/organization_models.py +++ b/app/models/organization_models.py @@ -63,10 +63,11 @@ class Organization_Base(BaseModel): created_on: Optional[datetime.datetime] = None updated_on: Optional[datetime.datetime] = None - #account: Optional[Account_Base] = Account_Base() - contact: Optional[Contact_Base] = Contact_Base() - #person: Optional[Person_Base] = Person_Base() - #user: Optional[User_Base] = User_Base() + # Including other related objects + #account: Optional[Account_Base] + contact: Optional[Contact_Base] + #person: Optional[Person_Base] + #user: Optional[User_Base] _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) diff --git a/app/models/user_models.py b/app/models/user_models.py index 36c092f..e2acf19 100644 --- a/app/models/user_models.py +++ b/app/models/user_models.py @@ -255,16 +255,17 @@ class User_Base(BaseModel): logged_in_on: Optional[datetime.datetime] = None last_activity_on: Optional[datetime.datetime] = None - #account: Optional[Account_Base]# = Account_Base() - contact: Optional[Contact_Base]# = Contact_Base() - #organization: Optional[Organization_Base]# = Organization_Base() - #person: Optional[Person_Base]# = Person_Base() - role_list: Optional[list] = []# = User_Role_Base() - notes: Optional[str] created_on: Optional[datetime.datetime] = None updated_on: Optional[datetime.datetime] = None + # Including other related objects + #account: Optional[Account_Base] + contact: Optional[Contact_Base] + #organization: Optional[Organization_Base] + #person: Optional[Person_Base] + role_list: Optional[list] = [] # User_Role_Base() + _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) #@validator('user_id_random', always=True) diff --git a/app/routers/event.py b/app/routers/event.py index 26fce2f..412189d 100644 --- a/app/routers/event.py +++ b/app/routers/event.py @@ -9,7 +9,7 @@ from app.db_sql import * from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template -from app.methods.event_methods import load_event_obj +from app.methods.event_methods import load_event_obj, update_event_obj from app.models.event_models import Event_Base from app.models.response_models import * @@ -68,6 +68,45 @@ async def patch_event_obj( return result +# ### BEGIN ### API Event ### patch_event_json() ### +@router.patch('/{event_id}/json', response_model=Resp_Body_Base) +async def patch_event_json( + event_obj: Event_Base, + event_id: str = Query(..., min_length=1, max_length=22), + create_missing_obj: bool = False, + x_account_id: Optional[str] = Header(..., ), + return_obj: Optional[bool] = True, + by_alias: Optional[bool] = True, + include: Optional[list] = [], + exclude: Optional[list] = [], + exclude_unset: Optional[bool] = True, + exclude_none: Optional[bool] = True, + ): + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + 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) + + if event_obj_up_result := update_event_obj( + event_id=event_id, + event_obj_up=event_obj, + create_missing_obj=create_missing_obj, + ): + + log.debug(event_obj_up_result) + if return_obj: + event_obj = load_event_obj(event_id=event_id) + event_dict = event_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) + return mk_resp(data=event_dict) + else: + return mk_resp(data=event_obj_up_result) + else: + return mk_resp(data=False, status_code=400) # Bad Request +# ### END ### API Event ### patch_event_json() ### + + # @router.get('/list', response_model=Resp_Body_Base) # async def get_event_obj_li( # for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50), diff --git a/app/routers/event_person.py b/app/routers/event_person.py index 0789a3c..cc972dd 100644 --- a/app/routers/event_person.py +++ b/app/routers/event_person.py @@ -1,17 +1,15 @@ import datetime -#from datetime import datetime, time, timedelta from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, status from pydantic import BaseModel, EmailStr, Field from typing import Dict, List, Optional, Set, Union from app.lib_general import log, logging -#from ..log import * from app.config import settings from app.db_sql import * from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template -from app.methods.event_person_methods import create_event_person_obj, load_event_person_obj +from app.methods.event_person_methods import create_event_person_obj, load_event_person_obj, update_event_person_obj from app.methods.person_methods import create_person_obj, load_person_obj from app.methods.user_methods import create_user_obj, load_user_obj @@ -170,6 +168,45 @@ async def post_event_person_new( # ### BEGIN ### API Event Person Route ### post_event_person_new() ### +# ### BEGIN ### API Event Person ### patch_event_person_json() ### +@router.patch('/{event_person_id}/json', response_model=Resp_Body_Base) +async def patch_event_person_json( + event_person_obj: Event_Person_Base, + event_person_id: str = Query(..., min_length=1, max_length=22), + create_missing_obj: bool = False, + x_account_id: Optional[str] = Header(..., ), + return_obj: Optional[bool] = True, + by_alias: Optional[bool] = True, + include: Optional[list] = [], + exclude: Optional[list] = [], + exclude_unset: Optional[bool] = True, + exclude_none: Optional[bool] = True, + ): + 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 mk_resp(data=None, status_code=404) + + if event_person_obj_up_result := update_event_person_obj( + event_person_id=event_person_id, + event_person_obj_up=event_person_obj, + create_missing_obj=create_missing_obj, + ): + + log.debug(event_person_obj_up_result) + if return_obj: + event_person_obj = load_event_person_obj(event_person_id=event_person_id) + event_person_dict = event_person_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) + return mk_resp(data=event_person_dict) + else: + return mk_resp(data=event_person_obj_up_result) + else: + return mk_resp(data=False, status_code=400) # Bad Request +# ### END ### API Event Person ### patch_event_person_json() ### + + # ### BEGIN ### API Event Person ### get_event_person_obj() ### # Working well as of 2021-06-04. Using as a template for other routes. @router.get('/{event_person_id}', response_model=Resp_Body_Base) diff --git a/app/routers/event_presentation.py b/app/routers/event_presentation.py index 6a1af0b..452dbff 100644 --- a/app/routers/event_presentation.py +++ b/app/routers/event_presentation.py @@ -70,6 +70,43 @@ async def patch_event_presentation_obj( return result +# ### BEGIN ### API Event Presentation ### patch_event_presentation_json() ### +@router.patch('/{event_presentation_id}/json', response_model=Resp_Body_Base) +async def patch_event_presentation_json( + event_presentation_obj: Event_Presentation_Base, + event_presentation_id: str = Query(..., min_length=1, max_length=22), + create_missing_obj: bool = False, + x_account_id: Optional[str] = Header(..., ), + return_obj: Optional[bool] = True, + by_alias: Optional[bool] = True, + include: Optional[list] = [], + exclude: Optional[list] = [], + exclude_unset: Optional[bool] = True, + exclude_none: Optional[bool] = True, + ): + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if event_presentation_id := redis_lookup_id_random(record_id_random=event_presentation_id, table_name='event_presentation'): pass + else: + return mk_resp(data=None, status_code=404) + + if event_presentation_obj_up_result := update_event_presentation_obj( + event_presentation_id=event_presentation_id, + event_presentation_obj_up=event_presentation_obj, + create_missing_obj=create_missing_obj, + ): + + log.debug(event_presentation_obj_up_result) + if return_obj: + event_presentation_obj = load_event_presentation_obj(event_presentation_id=event_presentation_id) + event_presentation_dict = event_presentation_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) + return mk_resp(data=event_presentation_dict) + else: + return mk_resp(data=event_presentation_obj_up_result) + else: + return mk_resp(data=False, status_code=400) # Bad Request +# ### END ### API Event Presentation ### patch_event_presentation_json() ### # ### BEGIN ### API Event Presentation ### get_event_presentation_obj() ### diff --git a/app/routers/event_presenter.py b/app/routers/event_presenter.py index f4413a4..1436007 100644 --- a/app/routers/event_presenter.py +++ b/app/routers/event_presenter.py @@ -11,7 +11,7 @@ from app.db_sql import * from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template -from app.methods.event_presenter_methods import load_event_presenter_obj +from app.methods.event_presenter_methods import load_event_presenter_obj, update_event_presenter_obj from app.models.event_presenter_models import Event_Presenter_Base from app.models.response_models import * @@ -70,6 +70,45 @@ async def patch_event_presenter_obj( return result +# ### BEGIN ### API Event Presenter ### patch_event_presenter_json() ### +@router.patch('/{event_presenter_id}/json', response_model=Resp_Body_Base) +async def patch_event_presenter_json( + event_presenter_obj: Event_Presenter_Base, + event_presenter_id: str = Query(..., min_length=1, max_length=22), + create_missing_obj: bool = False, + x_account_id: Optional[str] = Header(..., ), + return_obj: Optional[bool] = True, + by_alias: Optional[bool] = True, + include: Optional[list] = [], + exclude: Optional[list] = [], + exclude_unset: Optional[bool] = True, + exclude_none: Optional[bool] = True, + ): + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if event_presenter_id := redis_lookup_id_random(record_id_random=event_presenter_id, table_name='event_presenter'): pass + else: + return mk_resp(data=None, status_code=404) + + if event_presenter_obj_up_result := update_event_presenter_obj( + event_presenter_id=event_presenter_id, + event_presenter_obj_up=event_presenter_obj, + create_missing_obj=create_missing_obj, + ): + + log.debug(event_presenter_obj_up_result) + if return_obj: + event_presenter_obj = load_event_presenter_obj(event_presenter_id=event_presenter_id) + event_presenter_dict = event_presenter_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) + return mk_resp(data=event_presenter_dict) + else: + return mk_resp(data=event_presenter_obj_up_result) + else: + return mk_resp(data=False, status_code=400) # Bad Request +# ### END ### API Event Presenter ### patch_event_presenter_json() ### + + @router.get('/list', response_model=Resp_Body_Base) async def get_event_presenter_obj_li( for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50), # account @@ -150,7 +189,7 @@ async def get_event_presenter_obj_li( event_presenter_id=event_presenter_id, enabled=enabled, inc_event_abstract_list=inc_event_abstract_list, - inc_event_badge_list=inc_event_badge, + inc_event_badge=inc_event_badge, inc_event_device_list=inc_event_device_list, inc_event_file_list=inc_event_file_list, inc_event_person=inc_event_person, diff --git a/app/routers/event_session.py b/app/routers/event_session.py index 7474533..26e3b70 100644 --- a/app/routers/event_session.py +++ b/app/routers/event_session.py @@ -70,6 +70,45 @@ async def patch_event_session_obj( return result +# ### BEGIN ### API Event Session ### patch_event_session_json() ### +@router.patch('/{event_session_id}/json', response_model=Resp_Body_Base) +async def patch_event_session_json( + event_session_obj: Event_Session_Base, + event_session_id: str = Query(..., min_length=1, max_length=22), + create_missing_obj: bool = False, + x_account_id: Optional[str] = Header(..., ), + return_obj: Optional[bool] = True, + by_alias: Optional[bool] = True, + include: Optional[list] = [], + exclude: Optional[list] = [], + exclude_unset: Optional[bool] = True, + exclude_none: Optional[bool] = True, + ): + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass + else: + return mk_resp(data=None, status_code=404) + + if event_session_obj_up_result := update_event_session_obj( + event_session_id=event_session_id, + event_session_obj_up=event_session_obj, + create_missing_obj=create_missing_obj, + ): + + log.debug(event_session_obj_up_result) + if return_obj: + event_session_obj = load_event_session_obj(event_session_id=event_session_id) + event_session_dict = event_session_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) + return mk_resp(data=event_session_dict) + else: + return mk_resp(data=event_session_obj_up_result) + else: + return mk_resp(data=False, status_code=400) # Bad Request +# ### END ### API Event Session ### patch_event_session_json() ### + + # @router.get('/list', response_model=Resp_Body_Base) # async def get_event_session_obj_li( # for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50),