From 735e50dc0f9befa22bbb8d39bf76a62cb966e222 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 4 Jun 2021 11:23:08 -0400 Subject: [PATCH] Not much --- app/main.py | 1 + app/methods/event_location_methods.py | 120 ++++++++++++++++ app/methods/event_session_methods.py | 200 ++++++++++++++------------ app/routers/api_crud.py | 6 +- 4 files changed, 232 insertions(+), 95 deletions(-) create mode 100644 app/methods/event_location_methods.py diff --git a/app/main.py b/app/main.py index 2288368..0268639 100644 --- a/app/main.py +++ b/app/main.py @@ -306,6 +306,7 @@ origins = [ 'http://192.168.32.20:8080', 'http://localhost:3000', 'http://localhost:5000', + 'http://localhost:8080', 'http://fastapi.localhost:5000', 'http://demo.localhost:5000', 'http://localhost:7800', diff --git a/app/methods/event_location_methods.py b/app/methods/event_location_methods.py new file mode 100644 index 0000000..3d6abab --- /dev/null +++ b/app/methods/event_location_methods.py @@ -0,0 +1,120 @@ +from __future__ import annotations +import datetime + +from typing import Dict, List, Optional, Set, Union +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.lib_general import log, logging + +# from app.methods.event_methods import load_event_obj +# from app.methods.event_device_methods import load_event_device_obj +# from app.methods.event_file_methods import load_event_file_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 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.models.event_location_models import Event_Location_Base + + +# ### BEGIN ### API Event Location Methods ### load_event_location_obj() ### +def load_event_location_obj( + event_location_id: int|str, + enabled: str = 'enabled', # enabled, disabled, all + inc_event_device_list: bool = False, + inc_event_file_list: bool = False, + inc_event_presentation_list: bool = False, + inc_event_presenter_list: bool = False, + ) -> Event_Location_Base|bool: + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if event_location_id := redis_lookup_id_random(record_id_random=event_location_id, table_name='event_location'): pass + else: return False + + if event_location_rec := sql_select(table_name='v_event_location', record_id=event_location_id): pass + else: + return False + + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_location_rec) + + try: + event_location_obj = Event_Location_Base(**event_location_rec) + log.debug(event_location_obj) + except ValidationError as e: + log.error(e.json()) + return False + + # event_location_obj = Event_Location_Base(**event_location_rec) + # log.debug(event_location_obj) + + #account_id = event_location_rec.get('account_id', None) + event_id = event_location_rec.get('event_id', None) + + # if inc_event and event_id: + # if event_obj := load_event_obj( + # event_id=event_id, + # enabled=enabled, + # ): + # event_location_obj.event = event_obj.dict(by_alias=True, exclude_unset=True) + # else: + # event_location_obj.event = None + + # if inc_event_device_list: pass + # if inc_event_file_list: pass + + if inc_event_presentation_list: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + + data = {} + data['event_location_id'] = event_location_id + + if enabled in ['enabled', 'disabled', 'all']: + if enabled == 'enabled': + data['enable'] = True + sql_enabled = f'AND `event_presentation`.enable = :enable' + elif enabled == 'disabled': + data['enable'] = False + sql_enabled = f'AND `event_presentation`.enable = :enable' + elif enabled == 'all': + sql_enabled = '' + # else: event_location_obj['event'] = None + + sql = f""" + SELECT `event_presentation`.id AS 'event_presentation_id', `event_presentation`.id_random AS 'event_presentation_id_random' + FROM `v_event_presentation` AS `event_presentation` + WHERE `event_presentation`.event_location_id = :event_location_id + {sql_enabled} + ORDER BY `event_presentation`.created_on DESC, `event_presentation`.updated_on DESC; + """ + + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + if event_presentation_rec_li_result := sql_select(data=data, sql=sql, as_list=True): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_presentation_rec_li_result) + event_presentation_obj_li = [] + for event_presentation_rec in event_presentation_rec_li_result: + event_presentation_id = event_presentation_rec.get('event_presentation_id', None) + if event_presentation_obj := load_event_presentation_obj( + event_presentation_id=event_presentation_id, + enabled=enabled, + inc_event_device_list=inc_event_device_list, + inc_event_file_list=inc_event_file_list, + inc_event_presenter_list=inc_event_presenter_list, + ): + data = event_presentation_obj.dict(by_alias=True, exclude_unset=True) + event_presentation_obj_li.append(data) + log.debug(event_presentation_obj_li) + event_location_obj.event_presentation_list = event_presentation_obj_li + else: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_presentation_rec_li_result) + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + + if inc_event_presenter_list: pass + + return event_location_obj \ No newline at end of file diff --git a/app/methods/event_session_methods.py b/app/methods/event_session_methods.py index 52111ab..39be5a9 100644 --- a/app/methods/event_session_methods.py +++ b/app/methods/event_session_methods.py @@ -9,7 +9,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_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.person_methods import load_person_obj @@ -42,99 +42,113 @@ def load_event_session_obj( if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass else: return False - if event_session_rec := sql_select(table_name='v_event_session', record_id=event_session_id): - log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL - log.debug(event_session_rec) - - try: - event_session_obj = Event_Session_Base(**event_session_rec) - log.debug(event_session_obj) - except ValidationError as e: - log.error(e.json()) - return False - - # event_session_obj = Event_Session_Base(**event_session_rec) - # log.debug(event_session_obj) - - account_id = event_session_rec.get('account_id', None) - event_id = event_session_rec.get('event_id', None) - event_location_id = event_session_rec.get('event_location_id', None) - event_track_id = event_session_rec.get('event_track_id', None) - poc_event_person_id = event_session_rec.get('poc_event_person_id', None) - poc_person_id = event_session_rec.get('poc_person_id', None) - - #if inc_event: pass - if inc_event_abstract_list: pass - if inc_event_badge_list: pass - if inc_event_device_list: pass - if inc_event_file_list: pass - if inc_event_person_list: pass - if inc_event_presentation_list: - log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL - - data = {} - data['event_session_id'] = event_session_id - - if enabled in ['enabled', 'disabled', 'all']: - if enabled == 'enabled': - data['enable'] = True - sql_enabled = f'AND `event_presentation`.enable = :enable' - elif enabled == 'disabled': - data['enable'] = False - sql_enabled = f'AND `event_presentation`.enable = :enable' - elif enabled == 'all': - sql_enabled = '' - # else: event_obj['event_session'] = None - - # if limit: - # data['limit'] = limit - # sql_limit = f'LIMIT :limit' - # else: - # sql_limit = '' - - 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 - {sql_enabled} - ORDER BY `event_presentation`.created_on DESC, `event_presentation`.updated_on DESC; - """ - - log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL - if event_presentation_rec_li_result := sql_select(data=data, sql=sql, as_list=True): - log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL - log.debug(event_presentation_rec_li_result) - event_presentation_obj_li = [] - for event_presentation_rec in event_presentation_rec_li_result: - event_presentation_id = event_presentation_rec.get('event_presentation_id', None) - if event_presentation_obj := load_event_presentation_obj( - event_presentation_id=event_presentation_id, - enabled=enabled, - inc_event_abstract_list=inc_event_abstract_list, - inc_event_device_list=inc_event_device_list, - inc_event_file_list=inc_event_file_list, - inc_event_person_list=inc_event_person_list, - inc_event_presenter_list=inc_event_presenter_list, - ): - data = event_presentation_obj.dict(by_alias=True, exclude_unset=True) - event_presentation_obj_li.append(data) - log.debug(event_presentation_obj_li) - event_session_obj.event_presentation_list = event_presentation_obj_li - else: - log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL - log.debug(event_presentation_rec_li_result) - log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL - - - if inc_event_presenter_list: pass - if inc_poc_event_person: pass - if inc_poc_person: - person_obj = load_person_obj(person_id=poc_person_id) - log.debug(person_obj) - event_session_obj.poc_person = person_obj - log.debug(event_session_obj) - #if inc_user: pass + if event_session_rec := sql_select(table_name='v_event_session', record_id=event_session_id): pass else: return False + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_session_rec) + + try: + event_session_obj = Event_Session_Base(**event_session_rec) + log.debug(event_session_obj) + except ValidationError as e: + log.error(e.json()) + return False + + # event_session_obj = Event_Session_Base(**event_session_rec) + # log.debug(event_session_obj) + + account_id = event_session_rec.get('account_id', None) + event_id = event_session_rec.get('event_id', None) + event_location_id = event_session_rec.get('event_location_id', None) + event_track_id = event_session_rec.get('event_track_id', None) + poc_event_person_id = event_session_rec.get('poc_event_person_id', None) + poc_person_id = event_session_rec.get('poc_person_id', None) + + #if inc_event: pass + if inc_event_abstract_list: pass + if inc_event_badge_list: pass + if inc_event_device_list: pass + if inc_event_file_list: pass + + if inc_event_location and event_location_id: + if event_location_obj := load_event_location_obj( + event_location_id=event_location_id, + enabled=enabled, + ): + event_session_obj.event_location = event_location_obj.dict(by_alias=True, exclude_unset=True) + else: + event_session_obj.event_location = None + + + + if inc_event_person_list: pass + if inc_event_presentation_list: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + + data = {} + data['event_session_id'] = event_session_id + + if enabled in ['enabled', 'disabled', 'all']: + if enabled == 'enabled': + data['enable'] = True + sql_enabled = f'AND `event_presentation`.enable = :enable' + elif enabled == 'disabled': + data['enable'] = False + sql_enabled = f'AND `event_presentation`.enable = :enable' + elif enabled == 'all': + sql_enabled = '' + # else: event_obj['event_session'] = None + + # if limit: + # data['limit'] = limit + # sql_limit = f'LIMIT :limit' + # else: + # sql_limit = '' + + 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 + {sql_enabled} + ORDER BY `event_presentation`.created_on DESC, `event_presentation`.updated_on DESC; + """ + + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + if event_presentation_rec_li_result := sql_select(data=data, sql=sql, as_list=True): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_presentation_rec_li_result) + event_presentation_obj_li = [] + for event_presentation_rec in event_presentation_rec_li_result: + event_presentation_id = event_presentation_rec.get('event_presentation_id', None) + if event_presentation_obj := load_event_presentation_obj( + event_presentation_id=event_presentation_id, + enabled=enabled, + inc_event_abstract_list=inc_event_abstract_list, + inc_event_device_list=inc_event_device_list, + inc_event_file_list=inc_event_file_list, + inc_event_person_list=inc_event_person_list, + inc_event_presenter_list=inc_event_presenter_list, + ): + data = event_presentation_obj.dict(by_alias=True, exclude_unset=True) + event_presentation_obj_li.append(data) + log.debug(event_presentation_obj_li) + event_session_obj.event_presentation_list = event_presentation_obj_li + else: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(event_presentation_rec_li_result) + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + + + if inc_event_presenter_list: pass + if inc_poc_event_person: pass + if inc_poc_person: + person_obj = load_person_obj(person_id=poc_person_id) + log.debug(person_obj) + event_session_obj.poc_person = person_obj + log.debug(event_session_obj) + #if inc_user: pass + + return event_session_obj \ No newline at end of file diff --git a/app/routers/api_crud.py b/app/routers/api_crud.py index c247bd2..c4aaaa9 100644 --- a/app/routers/api_crud.py +++ b/app/routers/api_crud.py @@ -18,8 +18,10 @@ from app.models.archive_content_models import * from app.models.contact_models import * from app.models.event_models import * from app.models.event_exhibit_models import * +from app.models.event_location_models import * from app.models.event_person_models import * from app.models.event_registration_models import * +from app.models.journal_entry_models import * from app.models.membership_models import * from app.models.order_models import * from app.models.order_cart_models import * @@ -58,7 +60,7 @@ obj_type_li['event'] = {'table_name': 'v_event', 'base_name': Event_Base} #obj_type_li['event_device'] = {'table_name': 'event_device', 'base_name': Event_Device_Base} obj_type_li['event_exhibit'] = {'table_name': 'v_event_exhibit', 'base_name': Event_Exhibit_Base} # NOTE check view name: *_detail? #obj_type_li['event_file'] = {'table_name': 'v_event_file', 'base_name': Event_File_Base} # Should this eventually be changed to event_hosted_file -#obj_type_li['event_location'] = {'table_name': 'v_event_location', 'base_name': Event_Location_Base} +obj_type_li['event_location'] = {'table_name': 'v_event_location', 'base_name': Event_Location_Base} #obj_type_li['event_presentation'] = {'table_name': 'v_event_presentation', 'base_name': Event_Presentation_Base} #obj_type_li['event_presenter'] = {'table_name': 'v_event_presenter', 'base_name': Event_Presenter_Base} obj_type_li['event_registration'] = {'table_name': 'v_event_registration', 'base_name': Event_Registration_Base} @@ -67,7 +69,7 @@ obj_type_li['event_registration'] = {'table_name': 'v_event_registration', 'base #obj_type_li['hosted_file'] = {'table_name': 'hosted_file', 'base_name': Hosted_File_Base} #obj_type_li['hosted_file_link'] = {'table_name': 'hosted_file_link', 'base_name': Hosted_File_Link_Base} #obj_type_li['journal'] = {'table_name': 'v_journal', 'base_name': Journal_Base} -#obj_type_li['journal_entry'] = {'table_name': 'v_journal_entry', 'base_name': Journal_Entry_Base} +obj_type_li['journal_entry'] = {'table_name': 'v_journal_entry', 'base_name': Journal_Entry_Base} #obj_type_li['log'] = {'table_name': 'log', 'base_name': Log_Base} #'v_log' #obj_type_li['log_client_viewing'] = {'table_name': 'log_client_viewing', 'base_name': Log_Client_Viewing_Base} obj_type_li['membership'] = {'table_name': 'v_membership', 'base_name': Membership_Base}